繁体   English   中英

iOS-iPhone应用程序文档“没有这样的目录”吗?

[英]iOS - iPhone application documents “No such directory”?

我正在尝试使用在解决方案中看到的方法来删除我正在编写的应用程序的iPhone文档目录中的所有文件。 为了对文档目录的字符串位置进行传递,我对解决方案中的代码进行了一些小的更改。 我的代码版本如下:

NSString *directory = [[[[NSFileManager defaultManager] URLsForDirectory:NSDocumentDirectory inDomains:NSUserDomainMask] lastObject] absoluteString];
NSLog(@"%@", directory);
NSError *error = nil;
NSArray *directoryContents = [[NSFileManager defaultManager] contentsOfDirectoryAtPath:directory error:&error];
if (error == nil) {
    for (NSString *path in directoryContents) {
        NSString *fullPath = [directory stringByAppendingPathComponent:path];
        BOOL removeSuccess = [[NSFileManager defaultManager] removeItemAtPath:fullPath error:&error];
        if (!removeSuccess) {
            // Error handling
        }
    }
} else {
    // Error handling
    NSLog(@"%@", error);
}

但是,当我尝试运行此命令时,由于所传递的内容被解释为不存在的目录,所以directoryContents的设置失败。 具体来说,我在代码中放入的两个NSLog()语句返回以下内容:

2013-04-22 11:48:22.628 iphone-ipcamera[389:907] file://localhost/var/mobile/Applications/AB039CDA-412B-435A-90C2-8FBAADFE6B1E/Documents/

2013-04-22 11:48:22.650 iphone-ipcamera[389:907] Error Domain=NSCocoaErrorDomain Code=260 "The operation couldn’t be completed. (Cocoa error 260.)" UserInfo=0x1d5232c0 {NSUnderlyingError=0x1d54c420 "The operation couldn’t be completed. No such file or directory", NSFilePath=file://localhost/var/mobile/Applications/AB039CDA-412B-435A-90C2-8FBAADFE6B1E/Documents/, NSUserStringVariant=(

    Folder

)}

据我所知,打印到NSLog的路径看起来正确,所以我不确定自己在做什么错。 谁能指出我的错误在哪里? 非常感谢!

您获取directory值的代码不太正确。 你要:

NSURL *directoryURL = [[[NSFileManager defaultManager] URLsForDirectory:NSDocumentDirectory inDomains:NSUserDomainMask] lastObject];
NSString *directory = [directoryURL path];

NSURL上调用absoluteString给您一个文件URL。 您不需要文件URL,而是希望将文件URL转换为文件路径。 这就是path方法的作用。

另一种方法是:

NSString *directory = [NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES) lastObject];

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM