如果文件名包含正斜杠,例如“te/st.pdf”
[data writeToFile:@"/Documents/te/st.pdf" atomically:YES encoding:NSUTF8StringEncoding error:nil]
是否有任何解决方案,而不是用其他字符替换正斜杠“/”。
如果文件名包含正斜杠,例如“te/st.pdf”
[data writeToFile:@"/Documents/te/st.pdf" atomically:YES encoding:NSUTF8StringEncoding error:nil]
是否有任何解决方案,而不是用其他字符替换正斜杠“/”。
出于某种奇怪的原因,你必须使用\:
所以它会是
[data writeToFile:@"/Documents/te\:st.pdf" atomically:YES encoding:NSUTF8StringEncoding error:nil]
它可以工作,但编译器抱怨未知的转义序列。如果您将ls -la
在使用正斜杠创建文件的文件夹中执行,您会看到它被命名the:st.pdf
我不明白为什么你在代码中使用正斜杠,因为它表示 macos 文件路径。好吧,如果您不想替换或转义,那么只有一种方法只需使用以下代码重命名您的文件。
NSError * err = NULL;
BOOL result = [[NSFileManger
defaultManger moveItemAtPath:@"/
Documents/te/st.pdf" toPath: @"/
Documents/test.pdf" error:&err];
if(!result)
NSLog(@"Error: %@", err);