0

我有一个 importFile 存储在 NSString* importFile (用 NSLog %@ 打印):

/var/mobile/Applications/5CE1D252-E56A-4AAC-B88E-5B0CEFFF55B3/Library/Caches/tmp/temp_695D39E3-3359-415F-9C0D-243E2E117B8B-456-0000001384C17BBA.tmpfile

然后我收到一个destinationFile NSString *destinationFile 的值(用NSLog %@ 打印)

/var/mobile/Applications/5CE1D252-E56A-4AAC-B88E-5B0CEFFF55B3/Documents/Str%208829%20-%20Test.500887280

然后我使用 NSFileManager 移动文件:

NSFileManager* fileManager = [NSFileManager defaultManager];
assert(fileManager != nil);
NSError* error = nil;
[fileManager moveItemAtPath:importFile toPath:destinationFile error:&error];

问题是移动后的实际文件名与请求的destinationFile不同:

Str%25208829%2520-%2520Test.500887280

这里发生了什么 ?那些额外的三个 25 似乎有什么区别?

4

2 回答 2

1

看起来%文件名中的 被编码为%25(百分比的百分比代码)

你可以看看这个: URL-encoding and HTML-encoding NSStrings

于 2012-12-07T22:34:41.750 回答
1

您必须定义文件类型和扩展名。然后您只需将文件从一个目录移动到另一个目录...您也可以重命名文件

NSFileManager *manage = [NSFileManager defaultManager];

NSString *path = [NSHomeDirectory() stringByAppendingFormat:@"/Documents/%@",Text.txt];
NSString *newPath = [NSHomeDirectory() stringByAppendingFormat:@"/Documents/%@",newText.txt];

[manage moveItemAtPath:path toPath:newPath error:&error];
于 2014-10-07T08:28:39.860 回答