2017-07-13 153 views
1

使用Swift 3,我正在向文檔文件夾寫入視頻文件。 這裏是文件的路徑。無法從應用程序文檔文件夾中刪除文件

file:///var/mobile/Containers/Data/Application/D031AB20-CB7E-4B14-9483-E7C3F4C0EC55/Documents/output11:10:04.mov

現在我要刪除的文件再次使用filemanager。我從avassetwriter檢索上面的路徑,並使用我之前定義的outputurl使用filemanager刪除文件。

let fileManager = FileManager.default 

    do { 
     try fileManager.removeItem(at: (self.assetWriter?.outputURL)!) 
     } catch let err { 
     print(err) 
     } 

但我得到的錯誤是沒有這樣的文件或目錄。 使用self.assetWriter?.outputURL.path給我同樣的錯誤。

錯誤域= NSCocoaErrorDomain代碼= 4 「‘output11/10/04.mov’無法 被移除。」 (NSFilePath =/var/mobile/Containers/Data/Application/D031AB20-CB7E-4B14-9483-E7C3F4C0EC55/Documents/output11:10:04.mov, NSUserStringVariant =( Remove),NSUnderlyingError = 0x174240150 {Error域= NSPOSIXErrorDomain代碼= 2「沒有這樣的文件或目錄」}}

+0

刪除文件前,請檢查文件是否在該路徑存在與否?正如你的錯誤顯示這個文件不存在於位置。 –

+2

** output11:10:04.mov **是文件名不是t錯誤域= NSCocoaErrorDomain代碼= 4「** output11/10/04.mov ** –

回答

2

不要在文件名中使用冒號。

(由於遺留原因)操作系統將它們視爲路徑分隔符,並用斜槓替換它們。

+0

謝謝這是解決問題的一部分,但我'm仍然出錯。文件路徑不正確 –

+0

但是它不可能是同一個錯誤。 – vadian

+0

'錯誤域= NSCocoaErrorDomain代碼= 4「」output12-37-45.mov「無法刪除。「UserInfo = {NSFilePath =/var/mobile/Containers/Data/Application/FECB3191-7684-4D3E-9F99-120F17D74046/Documents/output12-37-45.mov,NSUserStringVariant =( Remove ),NSUnderlyingError = 0x170243c30 {錯誤域= NSPOSIXErrorDomain代碼= 2「沒有這樣的文件或目錄」}}' –

2

首先檢查天氣文件在此路徑存在或不存在,如果然後將其刪除: -

let file_manager = FileManager.init() 
     if let url = self.assetWriter?.outputURL{ 
      if file_manager.fileExists(atPath: url.path){ 
       if file_manager.isDeletableFile(atPath: url.path){ 
        do { 
         try file_manager.removeItem(at: url) 
        } catch let err { 
         print(err.localizedDescription) 
        } 
       } 
      } 
     } 
+0

該文件是肯定存在的,我可以看到它,當我去應用程序在iTunes中的文件夾ode不會產生任何錯誤,但它也不會刪除文件。 –

相關問題