我是一名9年级学习快速学习的新生,创建了一个学校项目.
我正在尝试创建一个目录,我想将扫描的文件保存为pdf格式.
在创建目录时,我收到以下错误.
错误1:
不能在属性初始值设定项中使用实例成员'filemgr'; 属性初始化程序在'self'可用之前运行.
错误2:
预期的声明
码:
let filemgr = FileManager.default
let dirPaths = filemgr.urls(for: .documentDirectory, in: .userDomainMask)
let docsURL = dirPaths[0]
let newDir = docsURL.appendingPathComponent("data").path
do{
try filemgr.createDirectory(atPath: newDir,withIntermediateDirectories: true, attributes: nil)
} catch {
print("Error: \(error.localizedDescription)")
}
Run Code Online (Sandbox Code Playgroud)
请协助我解决这个问题.
谢谢.
Avi*_*ash 40
对于Swift 4.0 请使用此功能
let fileManager = FileManager.default
if let tDocumentDirectory = fileManager.urls(for: .documentDirectory, in: .userDomainMask).first {
let filePath = tDocumentDirectory.appendingPathComponent("\(FOLDER_NAME)")
if !fileManager.fileExists(atPath: filePath.path) {
do {
try fileManager.createDirectory(atPath: filePath.path, withIntermediateDirectories: true, attributes: nil)
} catch {
NSLog("Couldn't create document directory")
}
}
NSLog("Document directory is \(filePath)")
}
Run Code Online (Sandbox Code Playgroud)
Pra*_*ani 32
请写下这段代码:
Swift 4.0和 Swift 3.0
let documentsPath1 = NSURL(fileURLWithPath: NSSearchPathForDirectoriesInDomains(.documentDirectory, .userDomainMask, true)[0])
let logsPath = documentsPath1.appendingPathComponent("data")
do
{
try FileManager.default.createDirectory(atPath: logsPath!.path, withIntermediateDirectories: true, attributes: nil)
}
catch let error as NSError
{
NSLog("Unable to create directory \(error.debugDescription)")
}
Run Code Online (Sandbox Code Playgroud)
Cod*_*der 16
对于Swift 4.0,我创建了以下扩展URL,允许从应用程序中的文档目录创建文件夹.
import Foundation
extension URL {
static func createFolder(folderName: String) -> URL? {
let fileManager = FileManager.default
// Get document directory for device, this should succeed
if let documentDirectory = fileManager.urls(for: .documentDirectory,
in: .userDomainMask).first {
// Construct a URL with desired folder name
let folderURL = documentDirectory.appendingPathComponent(folderName)
// If folder URL does not exist, create it
if !fileManager.fileExists(atPath: folderURL.path) {
do {
// Attempt to create folder
try fileManager.createDirectory(atPath: folderURL.path,
withIntermediateDirectories: true,
attributes: nil)
} catch {
// Creation failed. Print error & return nil
print(error.localizedDescription)
return nil
}
}
// Folder either exists, or was created. Return URL
return folderURL
}
// Will only be called if document directory not found
return nil
}
}
Run Code Online (Sandbox Code Playgroud)
如果所需的文件夹不存在,它将创建它.然后,假设文件夹存在,它将返回URL给用户.否则,如果失败,则nil返回.
例如,要创建文件夹"MyStuff",您可以这样调用它:
let myStuffURL = URL.createFolder(folderName: "MyStuff")
Run Code Online (Sandbox Code Playgroud)
这将返回:
文件:/// VAR /移动/容器/数据/应用/ 4DE0A1C0-8629-47C9-87D7-C2B4F3A16D24 /文档/的MyStuff /
您还可以使用以下内容创建嵌套文件夹:
let myStuffHereURL = URL.createFolder(folderName: "My/Stuff/Here")
Run Code Online (Sandbox Code Playgroud)
哪个给你:
文件:///无功/移动/集装箱/数据/应用/ 4DE0A1C0-8629-47C9-87D7-C2B4F3A16D24 /文档/我的/东西/这里/