2017-08-04 79 views
0

我有一个应用程序,允许用户录制多个视频,然后发布它们以稍后从数据库中查看。他们发布视频后,我希望应用程序从文档目录中删除视频以节省手机存储空间。我正在尝试此操作,但是当我检查手机的存储空间时,没有更新。下面是我在做什么试图从文档目录中删除文件

这是我写的视频:

func videoFileLocation() -> String { 
    let uniqueID = NSUUID().uuidString 
    let documentsPath = NSSearchPathForDirectoriesInDomains(.documentDirectory, .userDomainMask, true)[0] as NSString 
    let outputPath = "\(documentsPath)/\(uniqueID).mov" 
    return outputPath 
} 

这是我如何删除它们:

func clearDirectory() { 
    do { 
     data = try context.fetch(VideoPath.fetchRequest()) 

     for each in data { 
      let documentsPath = NSSearchPathForDirectoriesInDomains(.documentDirectory, .userDomainMask, true)[0] 
      let path = "\(documentsPath)/\(each.fileLocations!)" 
      let url = URL(fileURLWithPath: path) 
      do { 
      try FileManager.default.removeItem(at: url) 
       print("Successfully Cleared") 
      } catch { 
       print("There was a problem removing the file") 
      } 
} 

的成功清除方法被打印出来,但我看到我的手机存储没有变化。我究竟做错了什么?

+0

each.fileLocations的值是什么?我敢打赌这是一个完整的路径,而不仅仅是一个文件名。 – rmaddy

回答

1

更换

let path = "\(documentsPath)/\(each.fileLocations!)" 

下面和尝试。

var path: String = nil 

if let fileLocationPath = each.fileLocations as? String { 
    path = documentsPath.appendingPathComponent(fileLocationPath) 
} 
+0

这仍然没有改变我的存储内的任何东西,它不断上升。有没有清除整个目录? –

+0

解决方法是删除该应用并重新安装,直到找到解决方案。 – Joe

+0

您是否尝试打印路径与您保存文件的位置相同 – Joe