2017-08-04 12 views
0

私は、ユーザーが複数のビデオを録画し、後でデータベースから見るために投稿できるアプリを持っています。彼らはビデオを投稿した後、私は、携帯電話のストレージを節約するために、ドキュメントディレクトリからビデオを削除するアプリをしたい。私はこれを試していますが、私は私の携帯電話のストレージを確認するときに何も更新されていません。首尾よくクリア方法をプリントアウトしますドキュメントのディレクトリからファイルを削除しようとしています

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") 
      } 
} 

が、私:これは私がそれらを削除する方法です

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

:ここで私は私がビデオを書き込む場所です

をやっているものです私の携帯電話のストレージに変化は見られません。何が間違っているのですか?

+0

それぞれの.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

関連する問題