Pārlūkot izejas kodu

New createFileName

Marino Faggiana 7 gadi atpakaļ
vecāks
revīzija
5d541d9264
1 mainītis faili ar 44 papildinājumiem un 23 dzēšanām
  1. 44 23
      PickerFileProvider/FileProvider.swift

+ 44 - 23
PickerFileProvider/FileProvider.swift

@@ -46,6 +46,7 @@ var listFavoriteIdentifierRank = [String:NSNumber]()
 
 var uploadMetadataNet: CCMetadataNet?
 var timer: Timer?
+var fileNamePathImport = [String]()
 
 class FileProvider: NSFileProviderExtension {
     
@@ -96,6 +97,7 @@ class FileProvider: NSFileProviderExtension {
         if #available(iOSApplicationExtension 11.0, *) {
             
             listUpdateItems.removeAll()
+            fileNamePathImport.removeAll()
             listFavoriteIdentifierRank = NCManageDatabase.sharedInstance.getTableMetadatasDirectoryFavoriteIdentifierRank()
             
             // Timer for upload
@@ -880,29 +882,7 @@ class FileProvider: NSFileProviderExtension {
             return
         }
         
-        // exists with same name ? add + 1
-        if NCManageDatabase.sharedInstance.getMetadata(predicate: NSPredicate(format: "account = %@ AND fileNameView = %@ AND directoryID = %@", account, fileName, directoryParent.directoryID)) != nil {
-            
-            var name = NSString(string: fileName).deletingPathExtension
-            let ext = NSString(string: fileName).pathExtension
-            
-            let characters = Array(name)
-            
-            if characters.count < 2 {
-                fileName = 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
-                    fileName = name + "\(num!)" + "." + ext
-                } else {
-                    fileName = name + " " + "1" + "." + ext
-                }
-            }
-        }
+        fileName = createFileName(fileName, directoryID: directoryParent.directoryID, serverUrl: serverUrl)
         
         let fileNameLocalPath = importDocumentURL!.appendingPathComponent(fileName)
         
@@ -996,6 +976,7 @@ class FileProvider: NSFileProviderExtension {
             completionHandler(item, nil)
 
         }, failure: { (errorMessage, errorCode) in
+            
             completionHandler(nil, NSFileProviderError(.serverUnreachable))
         })
     }
@@ -1072,4 +1053,44 @@ class FileProvider: NSFileProviderExtension {
         
         return errorResult
     }
+    
+    func createFileName(_ fileName: String, directoryID: String, serverUrl: String) -> String {
+    
+        var resultFileName = fileName
+        var exitLoop = false
+        
+        while exitLoop == false {
+            
+            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
+            }
+        }
+        
+        // add fileNamePathImport
+        fileNamePathImport.append(serverUrl+"/"+resultFileName)
+        
+        return resultFileName
+    }
 }