无法从文件系统中删除 .zip 文件

Unable to delete .zip file from file system

无法从文件系统中删除 .zip 文件。

错误:

NSError *error;
BOOL deleted = [[NSFileManager defaultManager] removeItemAtPath:[DocumentDirectory stringByAppendingPathComponent:[UserDefaults stringForKey:kNCSIOfflineDataFileName]] error:&error];
if (!deleted) {
    DebugLog(@"%s %@", __PRETTY_FUNCTION__, error);
}

代码:

NSError *error;
    BOOL deleted = [[NSFileManager defaultManager] removeItemAtPath:[UserDefaults stringForKey:kNCSIOfflineDataFilePath] error:&error];
    if (!deleted) {
        DebugLog(@"%s %@", __PRETTY_FUNCTION__, error);
    }

路径已验证:

我以前 运行 在通过 file:/// 或 URL 访问文件时遇到过类似的问题。

我能建议的最好的办法是通过字符串变量访问文档目录路径,使用

附加字符串
    stringByAppendingPathComponent:(NSString *)

构建代表文件的字符串。然后使用 NSFileManager 的

删除
    removeItemAtPath:(NSString *)

NSUserDefaults 中存储包含应用文档文件夹绝对路径的文件路径是一个非常糟糕的主意。

原因如下:

  1. 应用程序的 UUID 会在更新时发生变化。
  2. iOS 将在更新期间迁移用户默认值。
  3. 您加载了旧的绝对值,它不再指向文件。

而是仅在文档文件根目录 之后存储值 ,并在每次使用 NSSearchPathForDirectoriesInDomains.

时构建完整路径