Marino Faggiana 7 ani în urmă
părinte
comite
1073acaaf7
1 a modificat fișierele cu 65 adăugiri și 56 ștergeri
  1. 65 56
      PickerFileProvider/FileProvider.swift

+ 65 - 56
PickerFileProvider/FileProvider.swift

@@ -724,6 +724,7 @@ class FileProvider: NSFileProviderExtension {
         let fileCoordinator = NSFileCoordinator()
         var error: NSError?
         var directoryPredicate: NSPredicate
+        var size = 0 as Double
             
         if parentItemIdentifier == .rootContainer {
             directoryPredicate = NSPredicate(format: "account = %@ AND serverUrl = %@", account, homeServerUrl)
@@ -795,73 +796,81 @@ class FileProvider: NSFileProviderExtension {
             
         fileURL.stopAccessingSecurityScopedResource()
         
-        // upload
-        _ = ocNetworking?.uploadFileNameServerUrl(serverUrl+"/"+fileName, fileNameLocalPath: fileNameLocalPath.path, communication: CCNetworking.shared().sharedOCCommunicationExtensionUpload(k_upload_session_extension), success: { (fileID, etag, date) in
+        do {
+            let attributes = try FileManager.default.attributesOfItem(atPath: fileNameLocalPath.path)
+            size = attributes[FileAttributeKey.size] as! Double
+        } catch let error {
+            print("error: \(error)")
+        }
+        
+        if (size == 0) {
+            
+            
+            
+        } else {
+            
+            // upload
+            _ = ocNetworking?.uploadFileNameServerUrl(serverUrl+"/"+fileName, fileNameLocalPath: fileNameLocalPath.path, communication: CCNetworking.shared().sharedOCCommunicationExtensionUpload(k_upload_session_extension), success: { (fileID, etag, date) in
                 
-            let metadata = tableMetadata()
+                let metadata = tableMetadata()
                 
-            metadata.account = account
-            metadata.date = date! as NSDate
-            metadata.directory = false
-            metadata.directoryID = directoryParent.directoryID
-            metadata.etag = etag!
-            metadata.fileID = fileID!
-            metadata.fileName = fileName
-            metadata.fileNameView = fileName
+                metadata.account = account
+                metadata.date = date! as NSDate
+                metadata.directory = false
+                metadata.directoryID = directoryParent.directoryID
+                metadata.etag = etag!
+                metadata.fileID = fileID!
+                metadata.fileName = fileName
+                metadata.fileNameView = fileName
+                metadata.size = size
 
-            do {
-                let attributes = try FileManager.default.attributesOfItem(atPath: fileURL.path)
-                metadata.size = attributes[FileAttributeKey.size] as! Double
-            } catch let error {
-                print("error: \(error)")
-            }
+                CCUtility.insertTypeFileIconName(fileName, metadata: metadata)
                 
-            CCUtility.insertTypeFileIconName(fileName, metadata: metadata)
-                
-            guard let metadataDB = NCManageDatabase.sharedInstance.addMetadata(metadata) else {
-                completionHandler(nil, NSFileProviderError(.noSuchItem))
-                return
-            }
+                guard let metadataDB = NCManageDatabase.sharedInstance.addMetadata(metadata) else {
+                    completionHandler(nil, NSFileProviderError(.noSuchItem))
+                    return
+                }
 
-            // Copy on ItemIdentifier path
-            let identifierPathUrl = groupURL!.appendingPathComponent("File Provider Storage").appendingPathComponent(metadata.fileID)
-            let toPath = "\(identifierPathUrl.path)/\(metadata.fileNameView)"
+                // Copy on ItemIdentifier path
+                let identifierPathUrl = groupURL!.appendingPathComponent("File Provider Storage").appendingPathComponent(metadata.fileID)
+                let toPath = "\(identifierPathUrl.path)/\(metadata.fileNameView)"
+                
+                if !FileManager.default.fileExists(atPath: identifierPathUrl.path) {
+                    do {
+                        try FileManager.default.createDirectory(atPath: identifierPathUrl.path, withIntermediateDirectories: true, attributes: nil)
+                    } catch let error {
+                        print("error: \(error)")
+                    }
+                }
                 
-            if !FileManager.default.fileExists(atPath: identifierPathUrl.path) {
                 do {
-                    try FileManager.default.createDirectory(atPath: identifierPathUrl.path, withIntermediateDirectories: true, attributes: nil)
+                    try FileManager.default.removeItem(atPath: toPath)
                 } catch let error {
                     print("error: \(error)")
                 }
-            }
-            
-            do {
-                try FileManager.default.removeItem(atPath: toPath)
-            } catch let error {
-                print("error: \(error)")
-            }
-            do {
-                try FileManager.default.copyItem(atPath:  fileNameLocalPath.path, toPath: toPath)
-            } catch let error {
-                print("error: \(error)")
-            }
-            
-            // add item
-            let item = FileProviderItem(metadata: metadataDB, serverUrl: serverUrl)
-            
-            // remove file uploading
-            self.uploading = self.uploading.filter() { $0 != serverUrl+"/"+fileName }
-                        
-            completionHandler(item, nil)
-            
-            // Refresh UI
-            self.refreshCurrentEnumerator(serverUrl: serverUrl)
+                do {
+                    try FileManager.default.copyItem(atPath:  fileNameLocalPath.path, toPath: toPath)
+                } catch let error {
+                    print("error: \(error)")
+                }
+                
+                // add item
+                let item = FileProviderItem(metadata: metadataDB, serverUrl: serverUrl)
+                
+                // remove file uploading
+                self.uploading = self.uploading.filter() { $0 != serverUrl+"/"+fileName }
+                
+                completionHandler(item, nil)
+                
+                // Refresh UI
+                self.refreshCurrentEnumerator(serverUrl: serverUrl)
 
-        }, failure: { (message, errorCode) in
-            // remove file uploading
-            self.uploading = self.uploading.filter() { $0 != serverUrl+"/"+fileName }
-            completionHandler(nil, NSFileProviderError(.serverUnreachable))
-        })
+            }, failure: { (message, errorCode) in
+                // remove file uploading
+                self.uploading = self.uploading.filter() { $0 != serverUrl+"/"+fileName }
+                completionHandler(nil, NSFileProviderError(.serverUnreachable))
+            })
+        }
     }
     
     // --------------------------------------------------------------------------------------------