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

ドライブ、ファイル、およびディレクトリを使用するに 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 のクラスは .NET Frameworkをサポートする Visual Basicなどの言語で使用するためのものです。

ストリームの定義

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

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 コンポーネントに渡されて処理されます。

参照

概念

ストリームの構成

非同期ファイル I/O

.NET Framework のファイル I/O とファイル システムで使用するクラス (Visual Basic)

その他の技術情報

ファイルおよびストリーム入出力