浏览代码

fix rename extension

marinofaggiana 4 年之前
父节点
当前提交
3c08c0712c

+ 1 - 1
iOSClient/Data/NCManageDatabase.swift

@@ -1948,7 +1948,7 @@ class NCManageDatabase: NSObject {
                     
                     if let result = metadatasResult.first(where: { $0.ocId == metadata.ocId }) {
                         // update
-                        if result.status == NCGlobal.shared.metadataStatusNormal && (result.etag != metadata.etag || result.fileNameView != metadata.fileNameView || result.date != metadata.date || result.permissions != metadata.permissions) {
+                        if result.status == NCGlobal.shared.metadataStatusNormal && (result.etag != metadata.etag || result.fileNameView != metadata.fileNameView || result.date != metadata.date || result.permissions != metadata.permissions || result.hasPreview != metadata.hasPreview) {
                             ocIdsUdate.append(metadata.ocId)
                             realm.add(metadata, update: .all)
                         } else if result.status == NCGlobal.shared.metadataStatusNormal && addCompareLivePhoto && result.livePhoto != metadata.livePhoto {

+ 10 - 10
iOSClient/Main/Rename file/NCRenameFile.swift

@@ -127,20 +127,20 @@ class NCRenameFile: UIViewController, UITextFieldDelegate {
     @IBAction func rename(_ sender: Any) {
 
         guard let metadata = metadata else { return }
-        var newFileNameWithoutExt = ""
-        var newExt = ""
+        var fileNameWithoutExtNew = ""
+        var extNew = ""
         var fileNameNew = ""
         
         if fileNameWithoutExt.text == nil || fileNameWithoutExt.text?.count == 0 {
             self.fileNameWithoutExt.text = metadata.fileNameWithoutExt
             return
         } else {
-            newFileNameWithoutExt = fileNameWithoutExt.text!
+            fileNameWithoutExtNew = fileNameWithoutExt.text!
         }
         
         if metadata.directory {
             
-            fileNameNew = newFileNameWithoutExt
+            fileNameNew = fileNameWithoutExtNew
             renameMetadata(metadata, fileNameNew: fileNameNew)
             
         } else {
@@ -149,18 +149,18 @@ class NCRenameFile: UIViewController, UITextFieldDelegate {
                 self.ext.text = metadata.ext
                 return
             } else {
-                newExt = ext.text!
+                extNew = ext.text!
             }
             
-            if newExt != metadata.ext {
+            if extNew != metadata.ext {
                 
-                let message = String(format: NSLocalizedString("_rename_ext_message_", comment: ""), newExt, metadata.ext)
+                let message = String(format: NSLocalizedString("_rename_ext_message_", comment: ""), extNew, metadata.ext)
                 let alertController = UIAlertController(title: NSLocalizedString("_rename_ext_title_", comment: ""), message: message, preferredStyle: .alert)
                             
-                var title = NSLocalizedString("_use_", comment: "") + " ." + newExt
+                var title = NSLocalizedString("_use_", comment: "") + " ." + extNew
                 alertController.addAction(UIAlertAction(title: title, style: .default, handler: { action in
                     
-                    fileNameNew = newFileNameWithoutExt + "." + newExt
+                    fileNameNew = fileNameWithoutExtNew + "." + extNew
                     self.renameMetadata(metadata, fileNameNew: fileNameNew)
                 }))
                 
@@ -173,7 +173,7 @@ class NCRenameFile: UIViewController, UITextFieldDelegate {
                 
             } else {
             
-                fileNameNew = newFileNameWithoutExt + "." + newExt
+                fileNameNew = fileNameWithoutExtNew + "." + extNew
                 renameMetadata(metadata, fileNameNew: fileNameNew)
             }
         }

+ 21 - 8
iOSClient/Networking/NCNetworking.swift

@@ -1163,14 +1163,27 @@ import Queuer
                     }
                             
                 } else {
-                            
-                    NCManageDatabase.shared.setLocalFile(ocId: ocId, fileName: fileNameNew, etag: nil)
-                    // Move file system
-                    let atPath = CCUtility.getDirectoryProviderStorageOcId(ocId) + "/" + metadata.fileName
-                    let toPath = CCUtility.getDirectoryProviderStorageOcId(ocId) + "/" + fileNameNew
-                    do {
-                        try FileManager.default.moveItem(atPath: atPath, toPath: toPath)
-                    } catch { }
+                    
+                    let ext = (metadata.fileName as NSString).pathExtension
+                    let extNew = (fileNameNew as NSString).pathExtension
+                    
+                    if ext != extNew {
+                        
+                        if let path = CCUtility.getDirectoryProviderStorageOcId(ocId) {
+                            NCUtilityFileSystem.shared.deleteFile(filePath: path)
+                        }
+                        NotificationCenter.default.postOnMainThread(name: NCGlobal.shared.notificationCenterReloadDataSourceNetworkForced, userInfo: ["serverUrl": metadata.serverUrl])
+
+                    } else {
+                    
+                        NCManageDatabase.shared.setLocalFile(ocId: ocId, fileName: fileNameNew, etag: nil)
+                        // Move file system
+                        let atPath = CCUtility.getDirectoryProviderStorageOcId(ocId) + "/" + metadata.fileName
+                        let toPath = CCUtility.getDirectoryProviderStorageOcId(ocId) + "/" + fileNameNew
+                        do {
+                            try FileManager.default.moveItem(atPath: atPath, toPath: toPath)
+                        } catch { }
+                    }
                 }
                 
                 if let metadata = NCManageDatabase.shared.getMetadataFromOcId(ocId) {