当我运行以下代码时,写入磁盘的文件名最终是这样的: "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];

最佳答案

文件名确实包含冒号; Finder 将其替换为斜线。

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

Finder 仍然不会让您输入冒号;如果您尝试输入斜杠,它会成功,但在其位置用冒号保存名称。

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

关于cocoa - 使用 NSData 方法 "writeToFile:atomically:"时如何在文件名中保留冒号?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/4924898/

10-14 05:15