0Pricing
Dart Academy · レッスン

ディレクトリ、パス、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フィードバックを取得できます。ローカル設定は不要です。

このコースのすべてのレッスン

  1. ファイルの読み書き
  2. ディレクトリ、パス、FileSystemEntity
  3. 大きなファイルのストリーミング
  4. Stdin、Stdout、Process Args
← Dart Academyに戻る