本記事は、Excel C# Script入門講座の1記事です。
ファイル/フォルダの操作
ファイルのコピーや削除など、ファイルに関する操作を行う場合には、System.IO名前空間のFileクラス.aspx)を利用します。
また、フォルダの作成や削除など、フォルダに関する操作を行う場合には、System.IO名前空間のDirectoryクラス.aspx)を利用します。
System.IO名前空間はmscorelib内に含まれているため、参照の追加は必要ありません。利用にあたっては、using宣言のみ追加してください。
ファイル操作
ファイルのコピー
第3引数にtrueを指定すると、上書きコピーを実行。
using System.IO; //既にコピー先にファイルが存在する場合、エラー発生 File.Copy("sample.txt", "copy.txt"); //既にコピー先にファイルが存在する場合、上書き File.Copy("sample.txt", "copy.txt", true);
ファイルの削除
using System.IO; File.Delete("sample.txt");
ファイルが存在するかの確認
ファイルが存在する場合true、存在しない場合・もしくはエラーが発生した場合falseが返されます。
using System.IO; var b = File.Exists(@"sample.txt");
ファイルの移動・名前の変更
ファイルが存在する場合true、存在しない場合・もしくはエラーが発生した場合falseが返されます。
using System.IO; File.Move(@"sample.txt", @"sample2.txt");
フォルダ操作
フォルダの作成
親フォルダが存在しない場合、自動的に作成する。
既にフォルダが存在する場合は何もしない。
なお、戻り値として、 System.IO.DirectoryInfo型のオブジェクトが返る。このオブジェクトは指定したパスに存在するディレクトリを表す。
using System.IO; var di = Directory.CreateDirectory(@"C:\TEST\SUB");
フォルダの削除
第2引数にtrueを指定しない限り、空の状態でないと削除されない。
削除対象が見つからない場合はエラーが発生。
using System.IO; //サブディレクトリ・ファイルが存在する場合削除しない Directory.Delete(@"C:\TEST"); //サブディレクトリ・ファイルが存在する場合でも削除する Directory.Delete(@"C:\TEST", true);
フォルダの移動・名前の変更
using System.IO; Directory.Move(@"C:\TEST\SUB", @"C:\TEST\SUB2");
なお、CreateDirectoryメソッドと異なり、親ディレクトリの自動作成は行わないので注意。
フォルダが存在するかの確認
ディレクトリが存在する場合true、存在しない場合・もしくはエラーが発生した場合falseが返されます。
using System.IO; var b = Directory.Exists(@"C:\TEST\SUB");
フォルダに含まれるファイルの取得
いずれのメソッドも第2引数で、文字列エンコーディングを指定可能です。
なお、文字列エンコーディングを指定するためのEncodingクラスは、System.Text名前空間に属するため、利用にあたってはusing宣言を追加してください。
using System.IO; using System.Text; var filename = "test.txt"; var tempArray = File.ReadAllLines(filename, Encoding.GetEncoding("Shift_JIS"));