[解決済み] ドキュメントフォルダ内のファイル一覧の取得
2022-04-27 01:16:02
質問
ドキュメントフォルダ内のファイル名を取得する私のコードのどこが問題なのでしょうか?
func listFilesFromDocumentsFolder() -> [NSString]?{
var theError = NSErrorPointer()
let dirs = NSSearchPathForDirectoriesInDomains(NSSearchPathDirectory.DocumentDirectory, NSSearchPathDomainMask.AllDomainsMask, true) as? [String]
if dirs != nil {
let dir = dirs![0] as NSString
let fileList = NSFileManager.defaultManager().contentsOfDirectoryAtPath(dir, error: theError) as [NSString]
return fileList
}else{
return nil
}
}
ドキュメントを正しく読んだつもりで、ドキュメントフォルダに何があるかはとても確かなのですが、"fileList"には何も表示されません? "dir" にはフォルダのパスが表示されています。
どうすればいいですか?
このソリューションは Swift 4 (Xcode 9.2)で、また スウィフト5 (Xcode 10.2.1+)です。
let fileManager = FileManager.default
let documentsURL = fileManager.urls(for: .documentDirectory, in: .userDomainMask)[0]
do {
let fileURLs = try fileManager.contentsOfDirectory(at: documentsURL, includingPropertiesForKeys: nil)
// process files
} catch {
print("Error while enumerating files \(documentsURL.path): \(error.localizedDescription)")
}
これは再利用可能な FileManager 拡張で、結果をスキップしたり隠しファイルを含めたりすることができます。
import Foundation
extension FileManager {
func urls(for directory: FileManager.SearchPathDirectory, skipsHiddenFiles: Bool = true ) -> [URL]? {
let documentsURL = urls(for: directory, in: .userDomainMask)[0]
let fileURLs = try? contentsOfDirectory(at: documentsURL, includingPropertiesForKeys: nil, options: skipsHiddenFiles ? .skipsHiddenFiles : [] )
return fileURLs
}
}
// Usage
print(FileManager.default.urls(for: .documentDirectory) ?? "none")
関連
-
制御が非ボイド関数の終了に達する
-
EXC_BAD_ACCESS (code=2, address=0x0)
-
[解決済み] カスタムオブジェクトを含むNSMutableArrayをソートするにはどうすればよいですか?
-
[解決済み] performSelectorのセレクタが不明なため、リークが発生する可能性があります。
-
[解決済み] iOS7でスタイルUITableViewStyleGroupedを持つUITableViewの上部に余分なパディングがあるのはなぜですか?
-
[解決済み] iOS 8 UITableViewのセパレータインセット0が機能しない件
-
[解決済み] SwiftでiOSキーボードを任意の場所でタッチして閉じる
-
[解決済み] UITextFieldのテキストインセット?
-
[解決済み] UIImageのサイズを変更する最も簡単な方法?
-
[解決済み] iOSアプリをApple Developer Programや脱獄せずにデバイス上でテストすることができます。
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
libc++abi.dylib が NSException 型の捕捉できない例外で終了する理由 エラー
-
[エラー処理】iOSのエラー、アーキテクチャx86_64の未定義シンボルについて
-
EXC_BAD_ACCESS (code=2, address=0x0)
-
[解決済み] SwiftでStringを配列に分割する?
-
[解決済み] UITextViewのプレースホルダー
-
[解決済み] フレームワークを使用したiOSアプリがデバイス上でクラッシュ、dyld: ライブラリがロードされない、Xcode 6 Beta
-
[解決済み] iOS 13 のフルスクリーンでモーダルを表示する
-
[解決済み] UITableViewCell、スワイプ時に削除ボタンを表示させる
-
[解決済み] 「GCC使用時に「Xcode/iOSのライセンスに同意するには管理者権限が必要です。rootでsudoを使用して再実行してください。
-
[解決済み] iPadマルチタスクのサポートには、これらの方向が必要です。