English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

C# ファイルとディレクトリ

C#はファイルシステム用の以下のクラスを提供します。これらは、ディレクトリにアクセス、ファイルにアクセス、ファイルを読み取りまたは書き込みのためにファイルを開く、新しいファイルを作成、既存のファイルを一つの位置から別の位置に移動するなどの機能を使用できます。

クラス名使用方法
FileFileは静的クラスであり、コピー、作成、移動、削除、読み取りまたは書き込みのために開く、暗号化または解凍、ファイルが存在するかどうかを確認、ファイル内容に行やテキストを追加、最終アクセス時間を取得などの機能を提供します。
FileInfoFileInfoクラスは、静的Fileクラスと同じ機能を提供し、ファイルから読み取るまたは書き込むためのバイトコードを手動で書き込むことで、ファイルへの読み書きをよりよく制御できます。/書き込み操作。
Directoryディレクトリは静的クラスであり、ディレクトリを作成、移動、削除、サブディレクトリにアクセスする機能を提供します。  
DirectoryInfoDirectoryInfoは、ディレクトリを作成、移動、削除、サブディレクトリにアクセスするためのインスタンスメソッドを提供します。  
PathPathは静的クラスであり、ファイル拡張名の取得、ファイル拡張名の変更、絶対物理パスの取得、その他のパスに関連する機能を提供します。

ファイル(File)

C#には静的Fileクラスが含まれており、物理ファイルシステム上でiを実行するために使用されます。/操作オ。静的ファイルクラスには、二進交代、テキストファイルなどの物理ファイルの種類に関係なく、さまざまなユーティリティメソッドが含まれています。

静的Fileクラスを使用して物理ファイルに対していくつかの迅速な操作を実行します。パフォーマンスの理由から、Fileクラスを複数のファイルの複数の操作で同時に使用することは推奨されません。この場合、FileInfoクラスを使用します。

静的Fileクラスの重要なメソッド

メソッド使用方法
AppendAllLines行をファイルに追加して閉じます。指定されたファイルが存在しない場合、このメソッドはファイルを作成し、指定された行をそのファイルに書き込み、閉じます。
AppendAllTextファイルを開き、指定された文字列をそのファイルに追加して閉じます。ファイルが存在しない場合、このメソッドはファイルを作成し、指定された文字列をそのファイルに書き込み、閉じます。
AppendTextUTFに書き込むためのStreamWriterを作成します。-8エンコードされたテキストを既存のファイルに追加するか、指定されたファイルが存在しない場合には新しいファイルに追加します。
Copy既存のファイルを新しいファイルにコピーします。同名のファイルを上書きすることは許可されません。
Create指定されたパスでファイルを作成または上書きします。
CreateTextUTFに書き込むためのファイルを作成または開く。-8エンコードされたテキストのファイル。
DecryptEncryptメソッドを使用して、現在のアカウントで暗号化されたファイルを解密します。
Delete指定されたファイルを削除します。
Encryptファイルを暗号化し、暗号化されたファイルを解密できるアカウントのみがファイルを解密できるようにします。
Exists指定されたファイルが存在するかどうかを確認します。
GetAccessControlFileSecurityオブジェクトを取得し、それが指定されたファイルのアクセス制御リスト(ACL)エントリをエンケードします。
Move指定されたファイルを新しい位置に移動し、指定された新しいファイル名のオプションを提供します。
Open読み取りアクセスを持つ/アクセス権限の指定されたパス上でFileStreamを開きます。
ReadAllBytes二進位ファイルを開き、ファイルの内容をバイト配列に読み込み、ファイルを閉じます。
ReadAllLinesテキストファイルを開き、ファイルのすべての行を読み取り、ファイルを閉じます。
ReadAllTextテキストファイルを開き、ファイルのすべての行を読み取り、ファイルを閉じます。
Replace指定されたファイルの内容を別のファイルの内容で置き換え、元のファイルを削除し、置き換えファイルのバックアップを作成します。
WriteAllBytes新しいファイルを作成し、指定されたバイト配列をそのファイルに書き込み、ファイルを閉じます。ターゲットファイルが既に存在する場合、それをオーバーライドします。
WriteAllLines新しいファイルを作成し、文字列のコレクションをそのファイルに書き込み、ファイルを閉じます。
WriteAllText新しいファイルを作成し、指定された文字列をそのファイルに書き込み、ファイルを閉じます。ターゲットファイルが既に存在する場合、それをオーバーライドします。

文字行を追加する

以下のように、AppendAllLines()メソッドを使用して、指定されたファイルに多行のテキストを追加します。

string dummyLines = "This is first line."; + Environment.NewLine +
                    "This is second line." + Environment.NewLine +
                    "This is third line.";
//DummyFile.txtを開き、行を追加します。ファイルが存在しない場合、作成して開きます。
File.AppendAllLines(@"C:\DummyFile.txt", dummyLines.Split(Environment.NewLine.ToCharArray()).ToList<string>());

文字列を追加する

以下のように、File.AppendAllText()メソッドを使用して、単一行のコードのファイルに文字列を追加します。

//DummyFile.txtを開き、テキストを追加します。ファイルが存在しない場合、作成して開きます。
File.AppendAllText(@"C:\ DummyFile.txt", "This is File testing");

テキストを上書き

使用File.WriteAllText()テキストをファイルに書き込みます。ただし、テキストを追加しません。既存のテキストを上書きします。

    例:既存のテキストを上書き

//DummyFile.txt を開き、テキストを書き込みます。ファイルが存在しない場合は、作成して開きます。
File.WriteAllText(@"C:\DummyFile.txt", "This is dummy text");

以下の例では、静的 File クラスを使用して異なる操作を実行する方法を示します。

//特定の場所にファイルが存在するかを確認します
bool isFileExists = File.Exists(@"C:\ DummyFile.txt"); // 仮
//DummyFile.txt を新しいファイル DummyFileNew.txt としてコピーします
File.Copy(@"C:\DummyFile.txt", @"D:\NewDummyFile.txt");
//ファイルの最後のアクセス時間を取得します 
DateTime lastAccessTime = File.GetLastAccessTime(@"C:\DummyFile.txt");
//ファイルの最後の書き込み時間を取得します
DateTime lastWriteTime = File.GetLastWriteTime(@"C:\DummyFile.txt");
// ファイルを新しい位置に移動します
File.Move(@"C:\DummyFile.txt", @"D:\DummyFile.txt");
//ファイルを開き、バイト読み取りに使用する FileStream を返します
FileStream fs = File.Open(@"D:\DummyFile.txt", FileMode.OpenOrCreate);
//ファイルを開き、文字列を読み取るための StreamReader を返します
StreamReader sr = File.OpenText(@"D:\DummyFile.txt");
    
//ファイルを削除します
File.Delete(@"C:\DummyFile.txt");

静的 File クラスを使用すると、物理ファイルの処理が簡単です。しかし、もっと柔軟性が必要な場合は、FileInfo クラスを使用することができます。同様に、静的 Directory クラスを使用して物理ディレクトリを処理します。

覚えておくべきポイント

  1. File は静的クラスであり、物理ファイルから読み取り\書き込みを行うために少ないコードで使用できます。

  2. 静的 File クラスは、物理ファイルに対して、作成、読み取り\書き込み、コピー、移動、削除などの機能を提供します。

  3. 静的 Directory クラスは、物理ディレクトリに対して、作成、コピー、移動、削除などの機能を提供しますが、コードの量が少なくなります。

  4. FileInfo や DirectoryInfo クラスは、静的 File や Directory クラスと同じ機能を提供します。