【问题标题】:No such file or directory, NSFilePath=~/Library没有这样的文件或目录,NSFilePath=~/Library
【发布时间】:2016-04-29 04:19:39
【问题描述】:

当我运行下面的代码 sn-p 时抛出下面引用的错误

fileManager.contentsOfDirectoryAtPath(libraryPath)

错误

Error Domain=NSCocoaErrorDomain Code=260 "无法执行该操作 完全的。 (可可错误 260。)“用户信息 = 0x17585bf0 {NSUnderlyingError=0x175706b0 "操作无法完成。否 这样的文件或目录", NSFilePath=~/Library, NSUserStringVariant=( 文件夹)}

这是我使用的完整代码 sn-p 以防万一有人想尝试

   func listLibDir(){

        let libraryPath = NSSearchPathForDirectoriesInDomains(NSSearchPathDirectory.LibraryDirectory, NSSearchPathDomainMask.UserDomainMask, false).first!

        let fileManager: NSFileManager = NSFileManager.defaultManager()

        do{
            var directoryContent:Array<String> = try fileManager.contentsOfDirectoryAtPath(libraryPath)

            for fileName: String in directoryContent {
                print("library:\(fileName)")
            }
        }
        catch{
            print(error)
        }

    }

如果有人能澄清为什么会发生此错误并提出解决方案,那就太好了

【问题讨论】:

    标签: ios swift sandbox nsfilemanager nslibrarydirectory


    【解决方案1】:

    在您的代码中:

    let libraryPath = NSSearchPathForDirectoriesInDomains(NSSearchPathDirectory.LibraryDirectory, NSSearchPathDomainMask.UserDomainMask, false).first!
    

    设置权限为true:

    let libraryPath = NSSearchPathForDirectoriesInDomains(NSSearchPathDirectory.LibraryDirectory, NSSearchPathDomainMask.UserDomainMask, true).first
    

    【讨论】:

    • 添加一点“为什么”部分....波浪号扩展通常由命令行外壳完成,因此如果您将结果传递给外部命令或仅显示结果, false 会很好。文件管理器例程不会自动进行扩展。
    猜你喜欢
    • 2017-03-14
    • 1970-01-01
    • 2021-06-24
    • 2017-03-21
    • 2015-02-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多