当前位置: 首页 > 面试题库 >

Swift:无法将文件复制到新创建的文件夹

葛越泽
2023-03-14
问题内容

我正在Swift中构建一个简单的程序,它应该将具有特定扩展名的文件复制到另一个文件夹中。如果该文件夹存在,程序将只将它们复制到该文件夹​​中;如果该文件夹不存在,则程序必须先将其复制。

let newMTSFolder = folderPath.stringByAppendingPathComponent("MTS Files")

if (!fileManager.fileExistsAtPath(newMTSFolder)) {
    fileManager.createDirectoryAtPath(newMTSFolder, withIntermediateDirectories: false, attributes: nil, error: nil)
}

while let element = enumerator.nextObject() as? String {
    if element.hasSuffix("MTS") { // checks the extension
        var fullElementPath = folderPath.stringByAppendingPathComponent(element)

        println("copy \(fullElementPath) to \(newMTSFolder)")

        var err: NSError?
        if NSFileManager.defaultManager().copyItemAtPath(fullElementPath, toPath: newMTSFolder, error: &err) {
            println("\(fullElementPath) file added to the folder.")
        } else {
            println("FAILED to add \(fullElementPath) to the folder.")
        }
    }
}

运行此代码将正确识别MTS文件,但会导致“添加失败…”,我在做什么错?


问题答案:

copyItemAtPath(...)文档中:

dstPath
放置的副本的路径srcPath。此路径必须在新位置包含文件或目录的名称。…

您必须将文件名附加到copyItemAtPath()调用的目标目录中 (为Swift 3及更高版本更新的代码)

let srcURL = URL(fileURLWithPath: fullElementPath)
let destURL = URL(fileURLWithPath: newMTSFolder).appendingPathComponent(srcURL.lastPathComponent)

do {
    try FileManager.default.copyItem(at: srcURL, to: destURL)
} catch {
    print("copy failed:", error.localizedDescription)
}


 类似资料:
  • 我编写了代码,但在构建它之后,我得到了以下内容: core-js@2.6.9 postinstall c:\users\admin\desktop\test code\angfirst\hello-world\node_modules\babel-runtime\node_modules\core-js node scripts/postinstall echo“ignore” core-js@2

  • 我有以下代码,它基于今天的日期创建一个文件夹,并将文件从一个文件夹移动到新的文件夹。我有以下代码: 此代码创建一个文件夹,但不将任何文件复制到新创建的文件夹。正在将文件从FTP服务器复制到新文件夹。请建议一些复制这些文件的更改。 谢谢!

  • 我想将文件salesjan2009.csv(存储在本地文件系统中,~/input/salesjan2009.csv)复制到HDFS(Hadoop分布式文件系统)主目录中 我编写了这段代码hduser@ubuntu:/usr/local/hadoop$hdfs dfs-copyfromlocal'/home/hduser/desktop/input/salesjan2009.csv'/hdfs-pa

  • 问题内容: 我不熟悉Swift,也不确定如何从字符串路径(或某种对象)创建新文件夹 这是在带有Cocoa的OS X上。 问题答案: 我的理解是,您正在尝试使用swift以编程方式创建目录。下面给出的代码执行相同的操作。

  • 我正在尝试将xlsx文件从文档文件夹保存到应用程序文件夹。这是代码,但显示错误: 错误Domain=nscocaerordomain Code=260“无法打开文件”file1.xlsx,“因为没有这样的文件。”UserInfo={NSFilePath=file:///private/var/mobile/Containers/Data/Application/8AC91C23-3662-44FF

  • 我有一个Windows文件夹结构和文件,如下所示 c:\源文件\file1.txt c:\源文件夹\subfolder1\file2.txt c:\源文件夹\子文件夹2\file3.txt 我想复制所有文件到目标文件夹,如下所示 c:\DestinationFile\file1.txt c:\DestinationFile\file2.txt c:\DestinationFile\file3.tx