2011-02-07 7 views
4

次のコードを実行すると、ディスクに書き込まれるファイル名は"MyFileName_2011-02-07_13/07/55.png"のようになります。私は、スラッシュではなくコロン文字を保持したいと思います。私はコンソールでNSLog "fileName"が正しく見えます。私は何が欠けていますか?NSDataメソッド "writeToFile:atomically:"を使用する場合、ファイル名にコロン文字を保持する方法

NSDateFormatter* dateFormatter = [[NSDateFormatter alloc] init]; 
[dateFormatter setDateFormat:@"yyyy-MM-dd_HH:mm:ss"]; 
NSString *dateString = [dateFormatter stringFromDate:[NSDate date]]; 

NSString *fileName = [NSString stringWithFormat:@"MyFileName_%@.png", dateString]; 

[myNSData writeToFile:fileName atomically:NO]; 

答えて

7

ファイル名にコロンが含まれています。 Finderはそれをスラッシュに置き換えます。

これは、Mac OSではパス区切り文字だったため、コロンを使用できなかったときのホールドオーバーです。さて、パス区切り記号はスラッシュ、したがってスイッチです。

Finderではまだコロンを入力できません。スラッシュを入力しようとすると成功しますが、その場所にコロンを付けて名前を保存します。

ココアを含め、コロンは有効です(パス区切りではありません)が、スラッシュはありません。

+0

私はそれを知らなかった!説明してくれてありがとう。 – anna

2

ダーウィンのファイル名(すなわち、OS XとiOS)で:文字を持つことが一般的に可能ではありません。 :を含むようにMac上のファイルの名前を変更してみてください。 writeToFile:メソッドは、明らかに生成とエラーの代わりに不正な文字を置き換えるだけです。