2
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

FileManagerでフォルダやファイルを削除する

Posted at

はじめに

前回の記事でFileManagerを使って端末に動画や音声などを追加する方法について書きました。ここではそれらを削除する方法について書きます。

解決できるかもしれないエラー

Domain=NSCocoaErrorDomain Code=4 "” couldn’t be removed." UserInfo={NSUserStringVariant=(
Remove
), NSFilePath=/var/mobile/Containers/Data/Application/EB92E676-C1F0-4B9A-8D82-D86D7186B2F3/Documents/dfg, NSUnderlyingError=0x2814ded00 {Error Domain=NSPOSIXErrorDomain Code=2 "No such file or directory"}}

目標

iOS App
    ├── Documents --- test.txt //ここに追加されたファイルやフォルダを削除する
    ├── Library
    │   ├── Caches
    │   └── Preferences
    └── tmp

ソースコード

func removeItem(_ itemName: String) {
        let fileManager = FileManager.default
        var pathString = NSSearchPathForDirectoriesInDomains(.documentDirectory, .userDomainMask, true)[0]
        if !fileManager.fileExists(atPath: pathString + "/" + itemName) {
            print("指定されたファイルまたはフォルダが存在しない")
            return
        }
        pathString = "file://" + pathString + "/" + itemName
        guard let path = URL(string: pathString) else { return }
        do {
            try fileManager.removeItem(at: path)
            print("成功した")
        } catch let error {
            print("失敗した\(error)")
        }
    }

流れ

pathStringでDocumentsまでのパスを用意し、fileExistsを使ってDocumentsの先に引数として入力されたフォルダまたはファイルが存在するかチェックします。(指定されたアイテムが存在しない場合のエラーは13行目で拾ってくれるのでここはなくても可。)
その後パスを変更し、URL型に変換し、removeItemを使って削除します。

2
3
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?