如何增加文件名如果文件已经存在?

问题描述:

如果文件已经存在,如何增加文件名?下面是我使用的代码:如何增加文件名如果文件已经存在?

let count: Int = 1 
var newFileName = "" 

let path = NSSearchPathForDirectoriesInDomains(.DocumentDirectory, .UserDomainMask, true)[0] as String 
let url = NSURL(fileURLWithPath: path) 
let filePath = url.URLByAppendingPathComponent("MyDoc.pdf").path! 
let fileManager = NSFileManager.defaultManager() 
if fileManager.fileExistsAtPath(filePath) { 
    print("FILE AVAILABLE") 
    newFileName = "MyDoc\(count).pdf" 

} else { 
    print("FILE NOT AVAILABLE") 
} 

MyDoc.pdf,MyDoc(1).PDF,MyDoc(5).PDF再怎么增加?

+0

有什么样的错误! –

+0

使用'while'语句! –

+0

解释你的问题! –

使用while语句来增加计数器,直到找到不采取一个文件名:

guard var filePath = url.URLByAppendingPathComponent("MyDoc.pdf").path else { 
    // force-unwrapping is not the answer! Handle error 
    return 
} 

let fileManager = NSFileManager.defaultManager() 

var counter = 0 

while fileManager.fileExistsAtPath(filePath) { 
    counter += 1 

    newFileName = "MyDoc(\(counter)).pdf" 
    let newURL = url.URLByAppendingPathComponent(newFileName) 

    guard let newPath = newURL.path else { 
     // Handle error (shouldn't happen anyway) 
     return 
    } 
    path = newPath // Try again... 
} 

注:我没试过编译这段代码。它可能有一些小错误。

在此代码

您每次创建MyDoc1.pdf

如果你想每次新的PDF文件,这样你得到的文件数量(计数)存在于位置和文件的增量数(数)+ 1

+2

这看起来像一个平庸的评论,而不是一个答案。 – GhostCat