C#プチリファレンス

C# ファイル操作

C#でファイルを操作するサンプル集です。

System.IO.Fileクラスを使う静的版と、System.IO.FileInfoクラスを使うインスタンス版が用意されていますが、どちらを使っていただいても機能に差はありません。

ファイル存在チェック

(例)"c:\hoge.txt"ファイルが存在するかチェックする

【System.IO.File版】
bool b = System.IO.File.Exists(@"c:\hoge.txt");
【System.IO.FileInfo版】
System.IO.FileInfo fi = new System.IO.FileInfo(@"c:\hoge.txt");
bool b = fi.Exists;

※ディレクトリの存在チェックは「ディレクトリ操作」ページを参照ください。

ファイルサイズを取得する

例)"c:\hoge.txt"ファイルのサイズを取得する(バイト数)
using System.IO;

FileInfo fi = new FileInfo(@"c:\hoge.txt");
long fileSize = fi.Length;

ファイルを削除する

(例)"c:\hoge.txt"ファイルを削除する

【System.IO.File版】
System.IO.File.Delete(@"c:\hoge.txt");
【System.IO.FileInfo版】
System.IO.FileInfo fi = new System.IO.FileInfo(@"c:\hoge.txt");
fi.Delete();

※両方とも対象ファイルが存在しない場合は何も起こりません。

ファイルをコピーする

(例)"c:\hoge.txt"を"c:\hogecopy.txt"にコピーする

【System.IO.File版】
//コピー先が既に存在した場合IOExceptionを発生させる場合
System.IO.File.Copy(@"c:\hoge.txt", @"c:\hogecopy.txt");

//コピー先が既に存在した場合上書きする場合
System.IO.File.Copy(@"c:\hoge.txt", @"c:\hogecopy.txt", true);
【System.IO.FileInfo版】
System.IO.FileInfo fi = new System.IO.FileInfo(@"c:\hoge.txt");

//コピー先が既に存在した場合IOExceptionを発生させる場合
fi.CopyTo(@"c:\hogecopy.txt");

//コピー先が既に存在した場合上書きする場合
fi.CopyTo(@"c:\hogecopy.txt", true);

ファイルを移動する

(例)"c:\hoge.txt"を"d:\aaa\hoge2.txt"に移動する

【System.IO.File版】
System.IO.File.Move(@"c:\hoge.txt", @"d:\aaa\hoge2.txt");
【System.IO.FileInfo版】
System.IO.FileInfo fi = new System.IO.FileInfo(@"c:\hoge.txt");
fi.MoveTo(@"d:\aaa\hoge2.txt");

※移動先に既に同名ファイルが存在する場合はIOExceptionとなります。

フォルダ配下のファイル名一覧を取得する

例)"c:\hoge"フォルダ配下のファイル一覧を取得する
using System.IO;

FileInfo fi = new FileInfo(@"c:\hoge");
string[] fileArray = fi.GetFiles(@"*", SearchOperation.AllDirectories);

(GetFilesの第2引数)
  SearchOperation.AllDirectories:サブディレクトリも対象にする
  SearchOperation.TopDirectoryOnly:サブディレクトリは対象にしない

※ディレクトリ名とファイル名を同時に取得したい場合は、GetFileSystemInfosメソッドで取得できます。

【例】
c:\hoge\sampl1.txt c:\hoge\sampl2.txt c:\hoge\sampl3.txt
ToTop