blob: 1f25541d69f30b08b6468d2f142ff2dc419e438a (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
|
import Foundation
extension URL {
func generateUniqueFilePath(filename base: String) -> String {
let fileManager = FileManager.default
var finalName = base
var counter = 2
// Helper function to generate a new filename with a counter
func makeFileName() -> String {
let baseName = (base as NSString).deletingPathExtension
let extensionName = (base as NSString).pathExtension
return extensionName.isEmpty ? "\(baseName) \(counter)" : "\(baseName) \(counter).\(extensionName)"
}
// Check if file exists and append counter until a unique name is found
var filePath = self.appending(component: finalName).path(percentEncoded: false)
while fileManager.fileExists(atPath: filePath) {
finalName = makeFileName()
filePath = self.appending(component: finalName).path(percentEncoded: false)
counter += 1
}
return filePath
}
}
|