文件目录Swift中文件夹的命名

时间:2019-06-27 16:21:42

标签: ios swift swift4

我正在使用以下代码(从另一个答案中提取)在documents目录中创建一个文件夹(我的应用程序需要导出文件)。我正在尝试命名该文件夹,但是该文件夹是使用Xcode项目的名称而不是我指定的名称创建的:

func createFileDirectory() {
    let documentsPath = NSURL(fileURLWithPath: NSSearchPathForDirectoriesInDomains(.documentDirectory, .userDomainMask, true)[0])

//set the name of the new folder
    let folderPath = documentsPath.appendingPathComponent("MY NAME HERE")
    do
    {
        try FileManager.default.createDirectory(atPath: folderPath!.path, withIntermediateDirectories: true, attributes: nil)
    }
    catch let error as NSError
    {
        NSLog("Unable to create directory \(error.debugDescription)")
    }
}

因此,当用户能够保存到文件时,应该允许他们保存到名为“ MY FOLDER HERE”的文件夹,但它只是使用Xcode项目的名称(“ MY_PROJECT”)创建一个文件夹

除了第一个给我答案的here

,我找不到其他答案。

我看不到我在做什么错?它正在创建 a 文件夹,只是忽略该名称?

更新

以下答案我已经更新为URL API方法,并从目标文件夹名称中删除了空格,但仍然得到了错误的文件夹名称(项目名称)

更新的代码:

func createFileDirectory() {
    let documentsURL = try! FileManager.default.url(for: .documentDirectory, in: .userDomainMask, appropriateFor: nil, create: false)

    //set the name of the new folder
    let folderURL = documentsURL.appendingPathComponent("FirstDraft")
    do
    {
        try FileManager.default.createDirectory(at: folderURL, withIntermediateDirectories: true)
    }
    catch let error as NSError
    {
        NSLog("Unable to create directory \(error.debugDescription)")
    }
}

1 个答案:

答案 0 :(得分:2)

请使用与网址相关的API。更可靠

func createFileDirectory() {
    let documentsURL = try! FileManager.default.url(for: .documentDirectory, in: .userDomainMask, appropriateFor: nil, create: false)

    //set the name of the new folder
    let folderURL = documentsURL.appendingPathComponent("MY NAME HERE")
    do
    {
        try FileManager.default.createDirectory(at: folderURL, withIntermediateDirectories: true)
    }
    catch let error as NSError
    {
        NSLog("Unable to create directory \(error.debugDescription)")
    }
}