Marino Faggiana 6 年之前
父节点
当前提交
27a508a1f8
共有 1 个文件被更改,包括 31 次插入26 次删除
  1. 31 26
      PickerFileProvider/FileProvider.swift

+ 31 - 26
PickerFileProvider/FileProvider.swift

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