使用NSData方法"writeToFile:atomically:"时如何在文件名中保留冒号字符?

ann*_*nna 4 file-io cocoa colon nsdata nsdateformatter

当我运行以下代码时,在磁盘上写入的文件名最终会像这样:"MyFileName_2011-02-07_13/07/55.png".我想保留结肠字符,而不是正斜线.当我在控制台中NSLog"fileName"时它看起来是正确的.我错过了什么?

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];
Run Code Online (Sandbox Code Playgroud)

Pet*_*sey 7

文件名确实包含冒号; Finder用斜杠替换它.

这是您无法使用冒号的延续,因为它是Mac OS上的路径分隔符.现在,路径分隔符是斜杠,因此是开关.

Finder仍然不会让你进入冒号; 如果你试图输入一个斜杠,它会成功,但保存名称后面有一个冒号.

几乎在其他地方,包括在Cocoa中,冒号是有效的(不是路径分隔符),但斜杠不是.