System.IO名前空間のクラスは、ドライブ、ファイル、およびディレクトリを操作するために使用されます。
System.IO名前空間には、ファイルとディレクトリを操作する .NET Framework 機能を提供するFileクラスとDirectory クラスが含まれています。 これらのオブジェクトのメソッドは静的メンバーまたは共有メンバーであるため、最初にクラスのインスタンスを作成せずに直接使用できます。 これらのクラスには、 FileInfo クラスと DirectoryInfo クラスが関連付けられています。これは、 My
機能のユーザーにとってなじみのあるクラスです。 これらのクラスを使用するには、影響を受けるコードの先頭に Imports
ステートメントを含めることで、名前を完全に修飾するか、適切な名前空間をインポートする必要があります。 詳細については、「 Imports ステートメント (.NET 名前空間と型)」を参照してください。
注
このセクションのその他のトピックでは、System.IO
クラスではなく、My.Computer.FileSystem
オブジェクトを使用してドライブ、ファイル、ディレクトリを操作します。
My.Computer.FileSystem
オブジェクトは、主に Visual Basic プログラムで使用することを目的としています。
System.IO
クラスは、Visual Basic を含め、.NET Framework をサポートする任意の言語で使用することを目的としています。
ストリームの定義
.NET Framework では、ストリームを使用して、ファイルの読み取りとファイルへの書き込みをサポートします。 ストリームは、先頭と末尾があり、カーソルがストリーム内の現在の位置を示す連続したデータの 1 次元セットと考えることができます。
ストリーム操作
ストリームに含まれるデータは、メモリ、ファイル、または TCP/IP ソケットから取得できます。 ストリームには、それらに適用できる基本的な操作があります。
読み取り。 ストリームから読み取り、ストリームからデータ構造 (文字列やバイト配列など) にデータを転送できます。
書き込み。 ストリームに書き込み、データ ソースからストリームにデータを転送できます。
シーク中。 ストリーム内の位置を照会および変更できます。
詳細については、「 ストリームの作成」を参照してください。
ストリームの種類
.NET Framework では、ストリームは他のすべてのストリームの抽象クラスを形成する Stream クラスによって表されます。 Stream クラスのインスタンスを直接作成することはできませんが、実装するクラスのいずれかを使用する必要があります。
ストリームにはさまざまな種類がありますが、ファイルの入出力 (I/O) を操作する目的で最も重要な型は、ファイルの読み取りと書き込みの方法を提供する FileStream クラスと、分離ストレージにファイルとディレクトリを作成する方法を提供する IsolatedStorageFileStream クラスです。 ファイル I/O を操作するときに使用できるその他のストリームは次のとおりです。
次の表に、ストリームで一般的に実行されるタスクを示します。
移行先 | 参照先 |
---|---|
データ ファイルの読み取りと書き込み | 方法: 新しく作成されたデータ ファイルの読み取りと書き込み |
ファイルからテキストを読み取る | 方法: ファイルからテキストを読み取る |
ファイルにテキストを書き込む | 方法: ファイルにテキストを書き込む |
文字列から文字を読み取る | 方法: 文字列から文字を読み取る |
文字列に文字を書き込む | 方法: 文字列に文字を書き込む |
データを暗号化する | データの暗号化 |
データの暗号化を解除する | データの暗号化解除 |
ファイル アクセスと属性
FileStream クラスのコンストラクターによって使用されるフラグを含むFileAccess、FileMode、およびFileShare列挙体でファイルを作成、開く、共有する方法を制御できます。 たとえば、新しい FileStreamを開いたり作成したりすると、 FileMode 列挙を使用して、追加用にファイルを開くかどうか、指定したファイルが存在しない場合に新しいファイルを作成するかどうか、ファイルを上書きするかどうかを指定できます。
FileAttributes列挙により、ファイル固有の情報を収集できます。 FileAttributes列挙は、圧縮、暗号化、非表示、読み取り専用、アーカイブ、ディレクトリ、システム ファイル、一時ファイルなど、ファイルの格納された属性を返します。
次の表に、ファイル アクセスとファイル属性に関連するタスクを示します。
移行先 | 参照先 |
---|---|
ログ ファイルを開いてテキストを追加する | 方法: ログ ファイルを開いて追加する |
ファイルの属性を決定する | FileAttributes |
ファイルのアクセス許可
ファイルとディレクトリへのアクセスの制御は、 FileIOPermission クラスを使用して行うことができます。 これは、Web フォームを使用する開発者にとって特に重要な場合があります。これは、既定では、ASP.NET および .NET Framework のインストールの一部として作成される ASPNET という名前の特別なローカル ユーザー アカウントのコンテキスト内で実行されます。 このようなアプリケーションがリソースへのアクセスを要求すると、ASPNET ユーザー アカウントのアクセス許可が制限されるため、ユーザーが Web アプリケーションからファイルへの書き込みなどのアクションを実行できなくなる可能性があります。 詳細については、FileIOPermissionを参照してください。
分離ファイル ストレージ
分離ストレージは、ユーザーまたはコードに必要なアクセス許可がない可能性があるファイルを操作するときに作成される問題を解決するための試みです。 分離ストレージは、各ユーザーに 1 つ以上のストアを保持できるデータ コンパートメントを割り当てます。 ストアは、ユーザーとアセンブリによって相互に分離できます。 ストアを作成したユーザーとアセンブリのみがアクセスできます。 ストアは完全な仮想ファイル システムとして機能し、1 つのストア内でディレクトリとファイルを作成および操作できます。
次の表に、分離ファイル ストレージに一般的に関連付けられているタスクを示します。
移行先 | 参照先 |
---|---|
分離ストアを作成する | 方法: 分離ストレージのストアを取得する |
分離ストアを列挙する | 方法: 分離ストレージのストアを列挙する |
分離ストアを削除する | 方法: 分離ストレージ内のストアを削除する |
分離ストレージにファイルまたはディレクトリを作成する | 方法: 分離ストレージにファイルとディレクトリを作成する |
分離ストレージ内のファイルを検索する | 方法: 分離ストレージ内の既存のファイルとディレクトリを検索する |
分離ストレージ内のファイルの読み取りまたは書き込み | 方法: 分離ストレージ内のファイルの読み取りと書き込み |
分離ストレージ内のファイルまたはディレクトリを削除する | 方法: 分離ストレージ内のファイルとディレクトリを削除する |
ファイル イベント
FileSystemWatcher コンポーネントを使用すると、システムまたはネットワークアクセス権を持つ任意のコンピューター上のファイルとディレクトリの変更を監視できます。 たとえば、ファイルが変更された場合は、変更が行われたというアラートをユーザーに送信できます。 変更が発生すると、1 つ以上のイベントが発生し、バッファーに格納され、処理のために FileSystemWatcher コンポーネントに渡されます。
こちらも参照ください
.NET