.NET Framework のファイル I/O とファイル システムの基礎 (Visual Basic)

System.IO 名前空間のクラスは、ドライブ、ファイル、ディレクトリの操作に使用されます。

System.IO 名前空間には File クラスと Directory クラスが含まれています。これらのクラスを使用すると、.NET Framework でファイルとディレクトリを操作できます。 これらのオブジェクトのメソッドは静的メンバーまたは共有メンバーなので、あらかじめクラスのインスタンスを作成しなくてもメンバーを直接使用できます。 これらのクラスに関連するクラスとして、FileInfo クラスと DirectoryInfo クラスがあります。My 機能を使用しているユーザーには使い慣れたクラスです。 これらのクラスを使用するには、名前を完全修飾するか、または、関係するコードの先頭に Imports ステートメントを記述して、適切な名前空間をインポートする必要があります。 詳細については、「Imports ステートメント (.NET 名前空間および型)」を参照してください。

注意

このセクションのそのほかのトピックでは My.Computer.FileSystem のクラスではなく、 System.IO オブジェクトを使用して、ドライブ、ファイル、およびディレクトリを操作します。 My.Computer.FileSystem オブジェクトは主に Visual Basic のプログラムで使用することを目的としています。 System.IO のクラスは .NET Framework をサポートする Visual Basic などの言語で使用するためのものです。

ストリームの定義

.NET Framework では、ファイルに対する読み取りと書き込みをサポートするストリームを使用します。 ストリームとは、1 次元の連続したデータの集まりと考えることができます。ストリームには先頭と末尾があり、カーソルでストリーム内での現在の位置を示します。

Cursor shows current position in the filestream.

ストリームの操作

ストリームに格納されているデータは、メモリ、ファイル、または TCP/IP ソケットから取得したものです。 ストリームに対しては、次の基本操作を実行できます。

  • 読み取り。 ストリームを読み取ったり、文字列やバイト配列などのデータ構造にストリームからデータを転送したりできます。

  • 書き込み。 ストリームに書き込んだり、データ ソースからストリームにデータを転送したりできます。

  • シーク。 ストリーム内の現在の位置をクエリおよび変更できます。

詳細については、「 ストリームの作成」を参照してください。

ストリームの種類

.NET Framework では、ストリームは Stream クラスで表されます。これは、その他のすべてのストリームのための抽象クラスです。 Stream クラスのインスタンスを直接作成することはできません。これを実装するいずれかのクラスを使用する必要があります。

ストリームにはさまざまな種類がありますが、ファイルの入出力 (I/O) を処理するという目的のために最も重要なのは、ファイルに対する読み取りと書き込みを実現する FileStream クラスと、分離ストレージに対するファイルやディレクトリの作成を実現する IsolatedStorageFileStream クラスです。 この他、ファイル I/O を処理する場合、以下のようなストリームを使用できます。

次の表は、ストリームで一般的に実行するタスクの一覧です。

終了 解決方法については、
データ ファイルに対する読み取りと書き込み 方法: 新しく作成されたデータ ファイルに対して読み書きする
ファイルからのテキストの読み取り 方法: ファイルからのテキストの読み取り
ファイルへのテキストの書き込み 方法: テキストのファイルへの書き込み
文字列からの文字の読み取り 方法:文字列から文字を読み取る
文字列への文字の書き込み 方法:文字列への文字の書き込み
データを暗号化する データの暗号化
データの復号化 データの復号化

ファイル アクセスと属性

ファイルの作成、オープン、および共有の方法は、FileAccessFileMode、および FileShare の各列挙体で制御できます。これらの列挙体には、FileStream クラスのコンストラクターで使用するフラグが含まれています。 たとえば、FileStream を開くかまたは新規作成するときに、ファイルを追加書き込み用に開くかどうか、指定のファイルが存在しない場合にファイルを新規作成するかどうか、ファイルを上書きするかどうか、などを FileMode 列挙体で指定できます。

FileAttributes 列挙体を使用すると、ファイル固有の情報を収集できます。 FileAttributes 列挙体は、格納されているファイルの属性を返します。これらの属性によって、圧縮ファイル、暗号化されたファイル、隠しファイル、読み取り専用ファイル、アーカイブ、ディレクトリ、システム ファイル、一時ファイルであるかどうかがわかります。

次の表は、ファイル アクセスとファイル属性に関連するタスクの一覧です。

終了 解決方法については、
ログ ファイルのオープンとテキストの追加 方法: ログ ファイルを開いて情報を追加する
ファイルの属性の判断 FileAttributes

ファイルのアクセス許可

ファイルおよびディレクトリに対するアクセスの制御は、FileIOPermission クラスで行うことができます。 これは、Web フォームの開発者には特に重要な場合があります。既定では、Web フォームは、ASPNET という名前の特別なローカル ユーザー アカウントのコンテキストで実行されます。ASPNET は、ASP.NET および .NET Framework のインストール時に作成されます。 ASPNET ユーザー アカウントはアクセス許可が制限されているため、アプリケーションがリソースへのアクセスを要求したときに、ユーザーが処理を実行できない場合があります (たとえば、Web アプリケーションからファイルへの書き込みなど)。 詳細については、「FileIOPermission」を参照してください。

分離ファイル ストレージ

分離ストレージとは、ファイルを扱うときに、必要なアクセス許可をユーザーまたはコードが持っていないために生じる問題を解決するためのものです。 分離ストレージでは、各ユーザーにデータ コンパートメントが割り当てられます。このデータ コンパートメントには、1 つまたは複数のストアを保持できます。 ストア間は、ユーザーおよびアセンブリごとに分離できます。 ストアにアクセスできるのは、それを作成したユーザーおよびアセンブリのみです。 ストアは、完全な仮想ファイル システムとして機能します。つまり、ストア内でディレクトリやファイルを作成および操作できます。

次の表は、分離ファイル ストレージに一般に関連するタスクの一覧です。

終了 解決方法については、
分離ストアの作成 方法: 分離ストレージでストアを取得する
分離ストアの列挙 方法: 分離ストレージでストアを列挙する
分離ストアの削除 方法: 分離ストレージでストアを削除する
分離ストレージのファイルまたはディレクトリの作成 方法: 分離ストレージでファイルおよびディレクトリを作成する
分離ストレージのファイルの検索 方法: 分離ストレージ内で既存のファイルおよびディレクトリを検索する
分離ストレージのファイルに対する読み取りと書き込み 方法: 分離ストレージ内でファイルの読み取りと書き込みを行う
分離ストレージのファイルまたはディレクトリの削除 方法: 分離ストレージでファイルおよびディレクトリを削除する

ファイルのイベント

FileSystemWatcher コンポーネントを使用すると、自システム上のファイルとディレクトリ、またはネットワークでアクセスできる任意のコンピューター上のファイルとディレクトリの変更を監視できます。 たとえば、ファイルが変更されたときに、その旨をユーザーに警告することが必要な場合があります。 変更が行われると、1 つまたは複数のイベントが発生し、バッファーに格納され、FileSystemWatcher コンポーネントに渡されて処理されます。

関連項目