gpt4 book ai didi

macos - 如何在 OS X 中移动文件并创建丢失的目录?

转载 作者:行者123 更新时间:2023-12-03 16:10:53 25 4
gpt4 key购买 nike

我想将 OSX 中的文件移动到另一个目录:

func moveFile(currentPath currentPath: String, targetPath: String) {

let fileManager = NSFileManager.defaultManager()

do { try fileManager.moveItemAtPath(currentPath, toPath: targetPath) }
catch let error as NSError { print(error.description) }

}

一切工作正常,除了目标目录不存在的情况。我发现 .isWritableFileAtPath 可能会有所帮助。

但是,在我声明的函数中,我使用完整的文件路径(包括文件名)。

如何将文件名与路径或更多内容分开:如果需要,如何强制 Swift 在移动文件之前创建目录?

最佳答案

过去我用类似于下面代码的代码解决了这个问题。基本上,您只需检查代表您要创建的文件的父目录的路径中是否存在文件。如果它不存在,您将创建它,并在不存在的路径中创建它上面的所有文件夹。

func moveFile(currentPath currentPath: String, targetPath: String) {
let fileManager = NSFileManager.defaultManager()
let parentPath = (targetPath as NSString).stringByDeletingLastPathComponent()
var isDirectory: ObjCBool = false
if !fileManager.fileExistsAtPath(parentPath, isDirectory:&isDirectory) {
fileManager.createDirectoryAtPath(parentPath, withIntermediateDirectories: true, attributes: nil)

// Check to see if file exists, move file, error handling
}
else if isDirectory {
// Check to see if parent path is writable, move file, error handling
}
else {
// Parent path exists and is a file, error handling
}
}

您可能还想使用 fileExistsAtPath:isDirectory: 变体,以便可以处理其他错误情况。

也是如此

关于macos - 如何在 OS X 中移动文件并创建丢失的目录?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32913278/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com