我想将位于/Library
的文件复制到文件夹/User/Library/AddressBook/Sample/
,
我用过:
[[NSFileManager defaultManager] copyItemAtPath: @"/Library/MyFile.mp3"
toPath: @"/User/Library/AddressBook/Sample/MyFile.mp3"
error: &error];
但我遇到一个错误,上面写着“操作无法完成”。没有这样的文件或
directory`
我正在使用已越狱的iPhone。
答案 0 :(得分:0)
目录:
/User/Library/AddressBook/Sample/
手机上通常不存在。在尝试将mp3文件复制到其中之前,您是否添加了Sample
子目录?
使用NSFileManager
方法,我还建议使用错误对象来帮助您调试:
NSError* error;
[[NSFileManager defaultManager] copyItemAtPath:@"/Library//MyFile.mp3" toPath: @"/User/Library/AddressBook/Sample/MyFile.mp3" error:&error];
if (error != nil) {
NSLog(@"Error message is %@", [error localizedDescription]);
}
此外,您的copyItemAtPath
拼写似乎有误,但可能只是在您的问题中,而不在您的代码中?无论如何,请仔细检查。
而且,你的道路上也有一个双斜线(//
),但我认为这不会伤到你。把它取出来,输入时要小心:)
如果您只是正常运行此应用 ,但在越狱手机上,您的应用将无法访问这些目录。在越狱手机上正常安装的应用仍然是沙盒。越狱不会删除手机上的所有规则。如果您在/Applications
中安装应用程序,就像真正的越狱应用程序一样,那么该代码应该适合您。
答案 1 :(得分:0)
NSArray *paths = NSSearchPathForDirectoriesInDomains(NSLibraryDirectory, NSUserDomainMask, YES);
NSString *libraryDirectory = [paths objectAtIndex:0];
NSLog(@"%@",libraryDirectory); // Library path
NSString *AddressBookPath = [libraryDirectory stringByAppendingPathComponent:@"AddressBook"];
if (![[NSFileManager defaultManager] fileExistsAtPath:AddressBookPath])
{
NSError* error;
// Create "AddressBook Dir"
if([[NSFileManager defaultManager] createDirectoryAtPath:AddressBookPath withIntermediateDirectories:NO attributes:nil error:&error])
{
// Create "Sample Dir"
NSString *samplePath = [AddressBookPath stringByAppendingPathComponent:@"Sample"];
if (![[NSFileManager defaultManager] fileExistsAtPath:AddressBookPath])
{
NSError* error;
if([[NSFileManager defaultManager] createDirectoryAtPath:AddressBookPath withIntermediateDirectories:NO attributes:nil error:&error])
{
// Copy Files Now
NSError* error;
NSString *fromPath = [libraryDirectory stringByAppendingPathComponent:@"MyFile.mp3"];
NSString *toPath = [samplePath stringByAppendingPathComponent:@"MyFile.mp3"];
[[NSFileManager defaultManager] copyItemAtPath:fromPath toPath:toPath error:&error];
if (error != nil)
{
NSLog(@"Error message is %@", [error localizedDescription]);
}
}
}
}
else
{
NSLog(@"[%@] ERROR: attempting to write create MyFolder directory", [self class]);
NSAssert( FALSE, @"Failed to create directory maybe out of disk space?");
}
}