|
@@ -1085,40 +1085,45 @@ class FileProvider: NSFileProviderExtension, CCNetworkingDelegate {
|
|
|
|
|
|
func createFileName(_ fileName: String, directoryID: String, serverUrl: String) -> String {
|
|
|
|
|
|
+ let serialQueue = DispatchQueue(label: "myqueue")
|
|
|
var resultFileName = fileName
|
|
|
- var exitLoop = false
|
|
|
-
|
|
|
- while exitLoop == false {
|
|
|
+
|
|
|
+ serialQueue.sync {
|
|
|
|
|
|
- if NCManageDatabase.sharedInstance.getMetadata(predicate: NSPredicate(format: "account = %@ AND fileNameView = %@ AND directoryID = %@", account, resultFileName, directoryID)) != nil || fileNamePathImport.contains(serverUrl+"/"+resultFileName) {
|
|
|
-
|
|
|
- var name = NSString(string: resultFileName).deletingPathExtension
|
|
|
- let ext = NSString(string: resultFileName).pathExtension
|
|
|
-
|
|
|
- let characters = Array(name)
|
|
|
+ var exitLoop = false
|
|
|
+
|
|
|
+ while exitLoop == false {
|
|
|
|
|
|
- if characters.count < 2 {
|
|
|
- resultFileName = name + " " + "1" + "." + ext
|
|
|
- } else {
|
|
|
- let space = characters[characters.count-2]
|
|
|
- let numChar = characters[characters.count-1]
|
|
|
- var num = Int(String(numChar))
|
|
|
- if (space == " " && num != nil) {
|
|
|
- name = String(name.dropLast())
|
|
|
- num = num! + 1
|
|
|
- resultFileName = name + "\(num!)" + "." + ext
|
|
|
- } else {
|
|
|
+ if NCManageDatabase.sharedInstance.getMetadata(predicate: NSPredicate(format: "account = %@ AND fileNameView = %@ AND directoryID = %@", account, resultFileName, directoryID)) != nil || fileNamePathImport.contains(serverUrl+"/"+resultFileName) {
|
|
|
+
|
|
|
+ var name = NSString(string: resultFileName).deletingPathExtension
|
|
|
+ let ext = NSString(string: resultFileName).pathExtension
|
|
|
+
|
|
|
+ let characters = Array(name)
|
|
|
+
|
|
|
+ if characters.count < 2 {
|
|
|
resultFileName = name + " " + "1" + "." + ext
|
|
|
+ } else {
|
|
|
+ let space = characters[characters.count-2]
|
|
|
+ let numChar = characters[characters.count-1]
|
|
|
+ var num = Int(String(numChar))
|
|
|
+ if (space == " " && num != nil) {
|
|
|
+ name = String(name.dropLast())
|
|
|
+ num = num! + 1
|
|
|
+ resultFileName = name + "\(num!)" + "." + ext
|
|
|
+ } else {
|
|
|
+ resultFileName = name + " " + "1" + "." + ext
|
|
|
+ }
|
|
|
}
|
|
|
+
|
|
|
+ } else {
|
|
|
+ exitLoop = true
|
|
|
}
|
|
|
-
|
|
|
- } else {
|
|
|
- exitLoop = true
|
|
|
}
|
|
|
- }
|
|
|
|
|
|
- // add fileNamePathImport
|
|
|
- fileNamePathImport.append(serverUrl+"/"+resultFileName)
|
|
|
+ // add fileNamePathImport
|
|
|
+ fileNamePathImport.append(serverUrl+"/"+resultFileName)
|
|
|
+ }
|
|
|
|
|
|
return resultFileName
|
|
|
}
|