Swift: FileManager().fileExists(atPath: (fileURL.path)) 不知道扩展名
Swift: FileManager().fileExists(atPath: (fileURL.path)) without knowing extension
)
今天我遇到了一个问题,我找不到简单的解决方法。
与:
FileManager().fileExists(atPath:(fileURL.path))
查明文件是否存在很简单。其实我有文件名,但不知道扩展名。如何使用 FileManager() 查找没有扩展名的文件。类似于 FileManger().fileExists 的 .deletingPathExtension()?
像
ls filename.*
您可以创建一个 FileManager 扩展来检索目录内容和文件过滤器以及预期的文件名。
它可能看起来像这样:
extension FileManager {
func urls(of filename: String, in directory: URL) -> [URL]? {
guard let urls = try? contentsOfDirectory(at: directory, includingPropertiesForKeys: nil, options: [])
else { return nil }
return urls.filter { url in
!url.hasDirectoryPath && url.deletingPathExtension().lastPathComponent == filename
}
}
}
最后,人们会这样称呼它:
let directory = URL(string: "file:///Users/stephan/tmp")!
if let urls = FileManager.default.urls(of: "test", in: directory) {
for url in urls {
print("do something with url: \(url)")
}
}
)
今天我遇到了一个问题,我找不到简单的解决方法。
与:
FileManager().fileExists(atPath:(fileURL.path))
查明文件是否存在很简单。其实我有文件名,但不知道扩展名。如何使用 FileManager() 查找没有扩展名的文件。类似于 FileManger().fileExists 的 .deletingPathExtension()? 像
ls filename.*
您可以创建一个 FileManager 扩展来检索目录内容和文件过滤器以及预期的文件名。
它可能看起来像这样:
extension FileManager {
func urls(of filename: String, in directory: URL) -> [URL]? {
guard let urls = try? contentsOfDirectory(at: directory, includingPropertiesForKeys: nil, options: [])
else { return nil }
return urls.filter { url in
!url.hasDirectoryPath && url.deletingPathExtension().lastPathComponent == filename
}
}
}
最后,人们会这样称呼它:
let directory = URL(string: "file:///Users/stephan/tmp")!
if let urls = FileManager.default.urls(of: "test", in: directory) {
for url in urls {
print("do something with url: \(url)")
}
}