www.digitalmars.com

D Programming Language 1.0

Last update Mon Dec 31 10:53:28 2012

std.file

Source:
std/file.d

class FileException: object.Exception;
Exception thrown for file I/O errors.

void[] read(char[] name);
Read file name[], return array of bytes read.

Throws:
FileException on error.

void write(char[] name, void[] buffer);
Write buffer[] to file name[].

Throws:
FileException on error.

void append(char[] name, void[] buffer);
Append buffer[] to file name[].

Throws:
FileException on error.

void rename(char[] from, char[] to);
Rename file from[] to to[].

Throws:
FileException on error.

void remove(char[] name);
Delete file name[].

Throws:
FileException on error.

ulong getSize(char[] name);
Get size of file name[].

Throws:
FileException on error.

void getTimes(char[] name, out d_time ftc, out d_time fta, out d_time ftm);
Get creation/access/modified times of file name[].

Throws:
FileException on error.

int exists(char[] name);
Does file name[] (or directory) exist? Return 1 if it does, 0 if not.

uint getAttributes(string name);
Get file name[] attributes.

Throws:
FileException on error.

int isfile(char[] name);
Is name[] a file?

Throws:
FileException if name[] doesn't exist.

int isdir(char[] name);
Is name[] a directory?

Throws:
FileException if name[] doesn't exist.

void chdir(char[] pathname);
Change directory to pathname[].

Throws:
FileException on error.

void mkdir(char[] pathname);
Make directory pathname[].

Throws:
FileException on error.

void rmdir(char[] pathname);
Remove directory pathname[].

Throws:
FileException on error.

char[] getcwd();
Get current directory.

Throws:
FileException on error.

struct DirEntry;
Directory Entry

string name;
file or directory name

ulong size;
size of file in bytes

d_time creationTime;
time of file creation

d_time lastAccessTime;
time file was last accessed

d_time lastWriteTime;
time file was last written to

uint isdir();
Return !=0 if DirEntry is a directory.

uint isfile();
Return !=0 if DirEntry is a file.

string[] listdir(string pathname);
Return contents of directory pathname[]. The names in the contents do not include the pathname.

Throws:
FileException on error

Example:
This program lists all the files and subdirectories in its path argument.
 import std.stdio;
 import std.file;

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

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


string[] listdir(string pathname, string pattern);
string[] listdir(string pathname, RegExp r);
Return all the files in the directory and its subdirectories that match pattern or regular expression r.

Params:
string pathname Directory name
string pattern String with wildcards, such as "*.d". The supported wildcard strings are described under fnmatch() in std.path.
r Regular expression, for more powerful pattern matching.

Example:
This program lists all the files with a "d" extension in the path passed as the first argument.
 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);
 }
A regular expression version that searches for all files with "d" or "obj" extensions:
 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(string pathname, bool delegate(char[] filename) callback);
For each file and directory name in pathname[], pass it to the callback delegate.

Params:
bool delegate(char[] filename) callback Delegate that processes each filename in turn. Returns true to continue, false to stop.

Example:
This program lists all the files in its path argument, including the path.
 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; // continue
    }

    listdir(pathname, &listing);

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


void listdir(string pathname, bool delegate(DirEntry* de) callback);
For each file and directory DirEntry in pathname[], pass it to the callback delegate.

Params:
bool delegate(DirEntry* de) callback Delegate that processes each DirEntry in turn. Returns true to continue, false to stop.

Example:
This program lists all the files in its path argument and all subdirectories thereof.
 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(string s);
Since Win 9x does not support the "W" API's, first convert to wchar, then convert to multibyte using the current code page. (Thanks to yaneurao for this)

Deprecated:
use std.windows.charset.toMBSz instead.

void copy(string from, string to);
Copy a file from[] to[].