我有以下代码来枚举目录。目录的 URL 作为参数传递给函数。
在函数开始时startAccessingSecurityScopedResource
返回true
,但是当我开始枚举时,它会返回false
用户选择的原始文件夹中的所有以下文件和子目录。
这是函数的代码。
func readDirectory(file: URL){
let localFileManager = FileManager()
let resourceKeys = Set<URLResourceKey>([.nameKey, .isDirectoryKey])
let directoryEnumerator = localFileManager.enumerator(
at: file,
includingPropertiesForKeys: Array(resourceKeys),
options: .skipsHiddenFiles
)!
for case let fileURL as URL in directoryEnumerator {
guard let resourceValues = try? fileURL.resourceValues(forKeys: resourceKeys),
let isDirectory = resourceValues.isDirectory,
let name = resourceValues.name else {
continue
}
}
}
从上面的代码中,file
传递的参数确实返回 true 进行访问。但是,在directoryEnumerator
循环中,fileURL
没有访问权限。
是否有原因导致我无法访问它说我可以访问的原始目录中的子目录和文件?