4

如果文件名包含正斜杠,例如“te/st.pdf”

[data writeToFile:@"/Documents/te/st.pdf" atomically:YES encoding:NSUTF8StringEncoding error:nil]

是否有任何解决方案,而不是用其他字符替换正斜杠“/”。

4

3 回答 3

2

出于某种奇怪的原因,你必须使用\:所以它会是

[data writeToFile:@"/Documents/te\:st.pdf" atomically:YES encoding:NSUTF8StringEncoding error:nil]

它可以工作,但编译器抱怨未知的转义序列。如果您将ls -la在使用正斜杠创建文件的文件夹中执行,您会看到它被命名the:st.pdf

于 2013-11-07T10:23:50.593 回答
0

我不明白为什么你在代码中使用正斜杠,因为它表示 macos 文件路径。好吧,如果您不想替换或转义,那么只有一种方法只需使用以下代码重命名您的文件。

 NSError * err = NULL;
 BOOL result = [[NSFileManger     
 defaultManger moveItemAtPath:@"/  
    Documents/te/st.pdf" toPath: @"/
  Documents/test.pdf"   error:&err];
 if(!result)
NSLog(@"Error: %@", err);
于 2013-11-07T10:39:54.050 回答
0
于 2015-05-30T20:25:24.530 回答