D 1.0   D 2.0
About Japanese Translation

Last update Sat Feb 14 11:58:29 2009

std.file

class FileException: object.Exception;
ファイル入出力エラーが発生したときに投げられる例外です。

void[] read(in string name);
ファイル name[] を読み取り、読み込まれたbyteの配列を返します。

Throws:
FileException をエラー時に投げる

void write(in string name, void[] buffer);
buffer[] をファイル name[] へ書き込みます。

Throws:
FileException をエラー時に投げる

void append(in string name, in void[] buffer);
ファイル name[]buffer[] を追記します。

Throws:
FileException をエラー時に投げる

void rename(in string from, in string to);
ファイル from[]to[] に改名します。

Throws:
FileException をエラー時に投げる

void remove(in string name);
ファイル name[] を削除します。

Throws:
FileException をエラー時に投げる

ulong getSize(in string name);
ファイル name[] のサイズを得ます。

Throws:
FileException をエラー時に投げる

void getTimes(in string name, out d_time ftc, out d_time fta, out d_time ftm);
ファイル name[] の作成/最終更新/最終アクセス時刻を取得

Throws:
FileException をエラー時に投げる

int exists(string name);
name[] (ファイルまたはディレクトリ)は存在するか? 存在するなら 1 しないなら 0 を返します。

uint getAttributes(string name);
ファイル name[] の属性を得ます。

Throws:
FileException をエラー時に投げる

int isfile(in string name);
name[] はファイルか?

Throws:
name[] が存在しなければ FileException を投げる

int isdir(in string name);
name[] はディレクトリか?

Throws:
name[] が存在しなければ FileException を投げる

void chdir(in string pathname);
現在の作業ディレクトリを変更します。

Throws:
FileException をエラー時に投げる

void mkdir(in string pathname);
ディレクトリを作ります。

Throws:
FileException をエラー時に投げる

void rmdir(in string pathname);
ディレクトリを削除します。

Throws:
FileException をエラー時に投げる

string getcwd();
現在の作業ディレクトリを取得します。

Throws:
FileException をエラー時に投げる

struct DirEntry;
ディレクトリエントリ

string name;
ファイルかディレクトリの名前

ulong size;
ファイルのバイト数

d_tim creationTime;
ファイル作成日時

d_time lastAccessTime;
ファイル最終アクセス日時

d_time lastWriteTime;
ファイル最終更新日時

uint isdir();
DirEntryがディレクトリの場合非ゼロ

uint isfile();
DirEntryがファイルの場合非ゼロ

string[] listdir(string pathname);
ディレクトリの内容を返します。 内容の名前には pathname は含まれません

Throws:
FileException をエラー時に投げる

Example:
このプログラムは、指定されたパス引数内の全てのファイルと サブディレクトリをリストアップします。
 import std.stdio;
 import std.file;

 void main(string[] args)
 {
    auto dirs = std.file.listdir(args[1]);

    foreach (d; dirs)
	writefln(d);
 }


string[] listdir(in string pathname, in string pattern);
string[] listdir(in string pathname, RegExp r);
ディレクトリとサブディレクトリにある全てのファイルのうち、 pattern または正規表現 r にマッチするもののみを返します。

Params:
string pathname ディレクトリ名
string pattern ワイルドカード入り文字列。例えば "*.d"。 対応しているワイルドカード文字列は、std.path の fnmatch() に記述されています。
r 正規表現です。より強力なパターンマッチに使用します。

Example:
このプログラムは、第一引数として渡されたパス上にある 拡張子 "d" のファイルを全てリストアップします。
 import std.stdio;
 import std.file;

 void main(string[] args)
 {
    auto d_source_files = std.file.listdir(args[1], "*.d");

    foreach (d; d_source_files)
	writefln(d);
 }
"d" もしくは "obj" の拡張子を持つファイルを探す、 正規表現バージョンです:
 import std.stdio;
 import std.file;
 import std.regexp;

 void main(string[] args)
 {
    auto d_source_files = std.file.listdir(args[1], RegExp(r"\.(d|obj)$"));

    foreach (d; d_source_files)
	writefln(d);
 }


void listdir(in string pathname, bool delegate(in string filename) callback);
pathname[] 内の全てのファイルとディレクトリ名を、 callback delegate に渡します。

Params:
bool delegate(in string filename) callback 毎回それぞれのパス文字列を処理する Delegate。 処理を続行するには true を、 終了するには false を返すこと。

Example:
このプログラムは、自身を含めパス引数以下の全てのファイルを リストアップします。
 import std.stdio;
 import std.path;
 import std.file;

 void main(string[] args)
 {
    auto pathname = args[1];
    string[] result;

    bool listing(string filename)
    {
      result ~= std.path.join(pathname, filename);
      return true; // 続行
    }

    listdir(pathname, &listing);

    foreach (name; result)
      writefln("%s", name);
 }


void listdir(in string pathname, bool delegate(DirEntry* de) callback);
pathname[] 内の全てのファイルとディレクトリのDirEntryを、 callback delegate に渡します。

Params:
bool delegate(DirEntry* de) callback 毎回それぞれのDirEntryを処理する Delegate。 処理を続行するには true を、 終了するには false を返すこと。

Example:
このプログラムは、自身を含めパス引数以下の全てのファイルを リストアップします。
 import std.stdio;
 import std.file;

 void main(string[] args)
 {
    bool callback(DirEntry* de)
    {
      if (de.isdir)
        listdir(de.name, &callback);
      else
        writefln(de.name);
      return true;
    }

    listdir(args[1], &callback);
 }


char* toMBSz(in string s);
Win9x は "W" API をサポートしないため、 まず文字列を wchar に変換してから 現在のコードページに従いマルチバイト文字列に変換します。 (yaneuraoに感謝)

Deprecated:
変わりに std.windows.charset.toMBSz の仕様が推奨されています

void copy(in string from, in string to);
ファイル from[] to[] へコピーします。