marinofaggiana 4 years ago
parent
commit
48cde2ae77
1 changed files with 46 additions and 0 deletions
  1. 46 0
      iOSClient/Utility/NCUtilityFileSystem.swift

+ 46 - 0
iOSClient/Utility/NCUtilityFileSystem.swift

@@ -72,5 +72,51 @@ class NCUtilityFileSystem: NSObject {
         } catch { }
         return nil
     }
+    
+    // MARK: - Get file data as chunks Methode.
+    func getFileDataInChunks() {
+        
+        let doumentDirectoryPath = NSSearchPathForDirectoriesInDomains(.documentDirectory, .userDomainMask, true)[0] as NSString
+        let filePath = doumentDirectoryPath.appendingPathComponent("video.mp4")
+        
+        
+        //Check file exits at path or not.
+        if FileManager.default.fileExists(atPath: filePath) {
+            
+            let chunkSize = 1024 // divide data into 1 kb
+            
+            //Create NSMutableData object to save read data.
+            let ReadData = NSMutableData()
+            
+            do {
+                
+                //open file for reading.
+                let outputFileHandle = try FileHandle(forReadingFrom: URL(fileURLWithPath: filePath))
+                
+                // get the first chunk
+                var datas = outputFileHandle.readData(ofLength: chunkSize)
+                
+                //check next chunk is empty or not.
+                while !(datas.isEmpty) {
+                    
+                    //here I write chunk data to ReadData or you can directly write to socket.
+                    ReadData.append(datas)
+                    
+                    // get the next chunk
+                    datas = outputFileHandle.readData(ofLength: chunkSize)
+                    
+                    print("Running: \(ReadData.length)")
+                }
+                
+                //close outputFileHandle after reading data complete.
+                outputFileHandle.closeFile()
+                
+                print("File reading complete")
+                
+            }catch let error as NSError {
+                print("Error : \(error.localizedDescription)")
+            }
+        }
+    }
 }