2017-09-06 33 views
0

ファイルがすでに存在する場合、ファイル名をインクリメントする方法は?ファイルが既に存在する場合、ファイル名をインクリメントする方法は?

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を、その後インクリメントする方法:ここで私が使用していたコードですか?私はこのコードをコンパイルしようとしていない:

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... 
} 

注:あなたが取られていないファイル名を見つけるまで

+0

エラーはありますか? –

+0

'while'文を使用してください! –

+0

あなたの質問を説明してください! –

答えて

0

はカウンターを高めるためにwhile文を使用します。多少の誤差があるかもしれません。このコードで

1

あなたは、ファイルの数を取得するので、あなたは毎回新しいPDFファイルをしたい場合(カウント)の場所とファイルの増分数で存在する(カウント)

MyDoc1.pdfたびに作成+ 1

+2

これは普通のコメントのように読まれますが、答えとは異なります。 – GhostCat

関連する問題