fileExistsAtPath 检查文件名?
fileExistsAtPath check for filename?
如何查看目录下是否有只有名字没有扩展名的文件?现在文件已写入我的目录,它们的名称将从 id 文件生成。因此,当我在查找文件时,在它所在的目录中让 file = "\ (fileId) .pdf",但如果没有扩展名,将找不到。 return 是否更容易从服务器扩展?
public var isDownloaded: Bool {
let path = NSSearchPathForDirectoriesInDomains(.DocumentDirectory, .UserDomainMask, true)[0] as String
let url = NSURL(fileURLWithPath: path)
let filePath = url.URLByAppendingPathComponent("\(fileMessageModel.attachment.id)")!.path!
let fileManager = NSFileManager.defaultManager()
return fileManager.fileExistsAtPath(filePath)
}
遍历目录中的文件并测试排除扩展名的名称怎么样?
let filemanager:FileManager = FileManager()
let files = filemanager.enumeratorAtPath(/* your directory path */)
while let file = files?.nextObject() {
// Remove file name extension
// Do file name comparison here
}
就时间复杂度而言,将是 O(n),但是,只要没有太多文件,您就可以开始了。另一方面,如果文件很多,就需要考虑更高效的遍历方式,可能是该目录下所有文件名组成的trie数据结构。
enumeratorAtPath
创建一个深层枚举器——即它也会扫描子文件夹及其子文件夹的内容。对于浅搜索,用户 contentOfDirectortAtPath
:
func file(fileName: String, existsAt path: String) -> Bool {
var isFound = false
if let pathContents = try? NSFileManager.defaultManager().contentsOfDirectoryAtPath(path) {
pathContents.forEach { file in
if (file as NSString).stringByDeletingPathExtension == fileName {
isFound = true
return
}
}
}
return isFound
}
if let path = NSSearchPathForDirectoriesInDomains(.DocumentDirectory, .UserDomainMask, true).first {
if file("something", existsAt: path) {
// The file exists, do something about it
}
}
如何查看目录下是否有只有名字没有扩展名的文件?现在文件已写入我的目录,它们的名称将从 id 文件生成。因此,当我在查找文件时,在它所在的目录中让 file = "\ (fileId) .pdf",但如果没有扩展名,将找不到。 return 是否更容易从服务器扩展?
public var isDownloaded: Bool {
let path = NSSearchPathForDirectoriesInDomains(.DocumentDirectory, .UserDomainMask, true)[0] as String
let url = NSURL(fileURLWithPath: path)
let filePath = url.URLByAppendingPathComponent("\(fileMessageModel.attachment.id)")!.path!
let fileManager = NSFileManager.defaultManager()
return fileManager.fileExistsAtPath(filePath)
}
遍历目录中的文件并测试排除扩展名的名称怎么样?
let filemanager:FileManager = FileManager()
let files = filemanager.enumeratorAtPath(/* your directory path */)
while let file = files?.nextObject() {
// Remove file name extension
// Do file name comparison here
}
就时间复杂度而言,将是 O(n),但是,只要没有太多文件,您就可以开始了。另一方面,如果文件很多,就需要考虑更高效的遍历方式,可能是该目录下所有文件名组成的trie数据结构。
enumeratorAtPath
创建一个深层枚举器——即它也会扫描子文件夹及其子文件夹的内容。对于浅搜索,用户 contentOfDirectortAtPath
:
func file(fileName: String, existsAt path: String) -> Bool {
var isFound = false
if let pathContents = try? NSFileManager.defaultManager().contentsOfDirectoryAtPath(path) {
pathContents.forEach { file in
if (file as NSString).stringByDeletingPathExtension == fileName {
isFound = true
return
}
}
}
return isFound
}
if let path = NSSearchPathForDirectoriesInDomains(.DocumentDirectory, .UserDomainMask, true).first {
if file("something", existsAt: path) {
// The file exists, do something about it
}
}