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