ディレクトリ、パス、FileSystemEntity
ファイルシステムを移動して調べます
「ディレクトリ、パス、FileSystemEntity」はCoddyKit上の無料Dart Academyレッスンです。 これはレッスン2/4です。 下記で完全なレッスンを無料で読むことができます。その後、ブラウザ内の組み込みコードエディタと24時間対応のAIチューターでハンズオン演習できます。 これはDart Academy学習パスの一部であり、ウェブとCoddyKitアプリ全体で進捗が同期されます。 Dart Academyコースには全4レッスンが含まれています。
Directory クラス
File がファイルを指定するように、Directory クラスはフォルダーを指定します。パス文字列から作成し、内容の確認や作成に利用できます。
final dir = Directory('logs');フォルダーを作成する
create を呼び出してフォルダーを作成します。recursive: true を追加すると、存在しない親フォルダーも Dart がまとめて作成します。
await dir.create(recursive: true);実行場所を確認する
プログラムが開始されたフォルダーが必要ですか。Directory.current で作業ディレクトリを取得できます。相対パスの基準となる場所です。
print(Directory.current.path);フォルダーの内容を一覧表示する
list を使うと、フォルダー内の内容をストリームとして取得できます。各イベントは、1つずつ調べられるエンティティです。
await for (final e in dir.list()) print(e.path);recursive で深く探索する
recursive: true を list に渡すと、すべてのサブフォルダーもたどり、ディレクトリ以下のツリー全体を探索します。
dir.list(recursive: true);FileSystemEntity、親となる型
ファイルとディレクトリはどちらも FileSystemEntity を継承します。この共通の基底型があるため、list はどちらの種類も1つのストリームで返せます。
種類を判定する
ファイルとフォルダーを見分けるには、FileSystemEntity.isDirectory を使うか、エンティティの型を確認します。これにより、ループ内の分岐を安全に処理できます。
if (await FileSystemEntity.isDirectory(e.path)) {}安全にパスを結合する
単純な文字列連結でパスを作らないでください。path パッケージを使うと、プラットフォームごとに適切な区切り文字でパスを結合できます。
import 'package:path/path.dart' as p;パスを組み立てる
各セグメントを指定して p.join を呼び出すと、Windows、macOS、Linux のいずれでも正しいパスを取得できます。
final full = p.join('data', 'users', 'a.txt');パスを分割する
p.basename でファイル名を、p.dirname でフォルダーを取得するなど、ヘルパーを使ってパスを分割できます。
print(p.basename('/data/a.txt'));拡張子を取得する
拡張子だけが必要ですか。p.extension はドットを含めて返すため、種類によるファイルの絞り込みを簡単に行えます。
print(p.extension('photo.png'));理解度チェック
複数のセグメントから、どのプラットフォームでも使えるパスを作る必要があります。安全な方法は何でしょうか。
まとめ
フォルダーを作成し、内容を再帰的に一覧表示し、ファイルとディレクトリを見分け、path パッケージで安全にパスを組み立てられるようになりました。
よくある質問
「ディレクトリ、パス、FileSystemEntity」レッスンは無料ですか?
はい。「ディレクトリ、パス、FileSystemEntity」の完全なテキストはこのウェブで無料で読めます。インタラクティブに演習し(組み込みコードエディタと24時間対応のAIチューター)、Dart Academyコースの残りをアンロックするには、CoddyKit PROにアップグレードしてください。 Dart Academyコースには全4レッスンが含まれています。
「ディレクトリ、パス、FileSystemEntity」で何を学びますか?
ファイルシステムを移動して調べます ブラウザで直接実行するハンズオンコードでDart Academyを演習し、24時間対応のAIチューターがレッスンを進める中での質問に答えます。
Dart Academyを始めるのに経験は必要ですか?
事前経験は必要ありません。CoddyKitのDart Academyは初級者から上級者向けに構成されているため、ここから始めるか最初から始めて、自分のペースで進むことができます。 これはレッスン2/4です。
「ディレクトリ、パス、FileSystemEntity」レッスンにはどのくらい時間がかかりますか?
ほとんどのCoddyKitレッスンは約5~10分かかります。各レッスンはコンパクトでインタラクティブなので、着実に進歩し、ウェブとアプリ全体で正確に前回の場所から再開できます。
このDart Academyレッスンでコードを書いて実行できますか?
はい。すべてのDart Academyレッスンに組み込みコードエディタが含まれているため、ブラウザでリアルコードを書いて実行し、即座のAIフィードバックを取得できます。ローカル設定は不要です。
このコースのすべてのレッスン
- ファイルの読み書き
- ディレクトリ、パス、FileSystemEntity
- 大きなファイルのストリーミング
- Stdin、Stdout、Process Args