注: stringByReplaceingOccurrencesOfString を何度も何度も使用したくないと明確に述べたので、これが重複としてマークされている理由がわかりません。
特殊文字のファイル名について質問があります。
ファイルまたは複数のファイルを開くと、プログラムがこれらすべてのファイル名とローカル パスを読み取り、それらを NSMutableArray に格納するようにプログラムを実装しました。この部分は問題なく完璧に動作します。
私のプログラムは、NSTask を使用してこれらのファイルを操作する必要もあります。ただし、問題は、ファイル名に特殊文字 ( /Users/josh/Desktop/Screen Shot 2013-03-19 at 2.05.06 PM.png
.
スペースをバックスラッシュとスペースに置き換える必要があります
NSString *urlPath = [[self url] path];
urlPath = [urlPath stringByReplacingOccurrencesOfString:@"(" withString:@"\\("];
urlPath = [urlPath stringByReplacingOccurrencesOfString:@")" withString:@"\\)"];
urlPath = [urlPath stringByReplacingOccurrencesOfString:@" " withString:@"\\ "];
に:/Users/josh/Desktop/Screen\ Shot\ 2013-03-19\ at\ 2.05.06\ PM.png
ファイルを適切に操作できるようにします。
(
とについても同じです)
。その前にバックスラッシュも追加する必要があります。
しかし、特殊文字が多すぎます。すなわち。
/Users/josh/Desktop/~!@#$?:<,.>%^&*()_+`-={}[]\|'';.txt
次のように変更する必要があります。
/Users/josh/Desktop/\~\!@\#\$\?\:\<\,.\>\%^\&\*\(\)_+\`-\=\{\}\[\]\\\|\'\'\;.txt
他の特殊文字(つまりアクセント)は言うまでもありません
stringByReplacingOccurrencesOfString
何度も何度も呼び出し続けたくないので、各特殊文字の前にバックスラッシュを置く簡単な方法はありますか?