更新 : 2007 年 11 月
アプリケーションでファイルを操作するとき、ファイル パスの一部だけを参照することが必要になる場合がよくあります。たとえば、ファイルの名前をパスを含めずに表示したい場合があります。My.Computer.FileSystem オブジェクトを使用すると、ファイルを解析するタスクを実行できます。
ファイルのパスは、My.Computer.FileSystem.GetParentPath メソッドを使用して取得できます。My.Computer.FileSystem.GetName メソッドを使用すると、パスを除いたファイル名を取得できます。
たとえば、「フォルダ内のファイル名の取得」で説明されている Picture Viewer アプリケーションでは、各ピクチャの完全パスを表示する代わりに、パスを除いてファイルの名前だけを表示できます。このレッスンでは、ドキュメント フォルダ内のすべてのファイルの名前をリスト ボックスに追加します。
![]() |
---|
Windows XP には、マイ ドキュメント、マイ ピクチャ、およびマイ ミュージックという特別なフォルダがあります。Windows Vista では、これらのフォルダの名前から "マイ" がなくなり、ドキュメント、ピクチャ、およびミュージックという名前になっています。ただし、このレッスンのコードは Windows XP と Windows Vista のどちらでも動作します。 |
やってみよう
ファイル名を解析するには
[ファイル] メニューの [新規作成] をポイントし、[プロジェクト] をクリックします。
[新しいプロジェクト] ダイアログ ボックスの [テンプレート] ペインで、[Windows アプリケーション] をクリックします。
[プロジェクト名] ボックスに「Parse File Path」と入力し、[OK] をクリックします。
新しい Windows フォーム プロジェクトが開きます。
フォームに ListBox コントロールを追加します。既定の名前の ListBox1 をそのまま使用します。
フォームに Button コントロールを追加し、既定の名前の Button1 をそのまま使用します。この Text プロパティを「Load」に変更します。
フォームを右クリックし、[コードの表示] をクリックします。
コード ファイルの先頭にある Public Class Form1 ステートメントの下に、次のコードを追加します。このコードは、ドキュメント フォルダ用の変数を作成します。
Dim FilePath As String = _ My.Computer.FileSystem.SpecialDirectories.MyDocuments
左側のドロップダウン リスト ([クラス名]) で、[Button1] をクリックします。
右側のドロップダウン リスト ([メソッド名]) で [Click] をクリックして、Button1_Click イベント ハンドラを作成します。
Button1_Click イベント ハンドラに次のコードを追加します。このコードは、リスト ボックス内のすべての項目を消去した後で、ドキュメント フォルダにあるファイルを検索し、各ファイル名をリスト ボックスに追加します。このコードでは、フォルダ パスを除いたファイル名を取得するために My.Computer.FileSystem.GetName メソッドを使用しています。
Dim FoundFile As String Dim FileName As String ' Clear the list box. Me.ListBox1.Items.Clear() ' Add each file in the Documents folder to list box. For Each FoundFile In My.Computer.FileSystem.GetFiles( _ FilePath, FileIO.SearchOption.SearchTopLevelOnly) ' Add only the name of each found file to the list box. FileName = My.Computer.FileSystem.GetName(FoundFile) Me.ListBox1.Items.Add(FileName) Next
F5 キーを押してプログラムを実行します。
フォームが表示されたら、[Load] ボタンをクリックします。
ドキュメント フォルダ内の各ファイルの名前 (パスを除く) がリスト ボックスに表示されます。
Parse File Path アプリケーションを閉じます。
ファイル名とフォルダ パスの結合
リストされたファイルに対してアクションを実行する場合は、ファイルの名前とパスの両方を指定する必要があります。My.Computer.FileSystem.CombinePath メソッドを使用すると、名前とパスを結合できます。リスト ボックス内の名前をクリックしたときに、ファイルのパスと名前をメッセージ ボックスに表示する方法を次の例に示します。
ファイル名とフォルダ パスを結合するには
デザイナ ビューで ListBox をダブルクリックして、既定の SelectedIndexChanged イベント ハンドラを入力します。
ListBox1_SelectedIndexChanged イベント ハンドラに次のコードを追加します。このコードは、フォルダ パスとファイル名を結合し、結果として作成された名前をメッセージ ボックスに表示します。
MsgBox(My.Computer.FileSystem.CombinePath( _ FilePath, Me.ListBox1.SelectedItem))
F5 キーを押してプログラムを実行します。
フォームが表示されたら、[Load] ボタンをクリックします。
リスト ボックスで、ファイル名の 1 つをクリックします。
メッセージ ボックスにファイルの名前とパスが表示されます。
アプリケーションを閉じます。
次の手順
このレッスンでは、ファイル パスを解析してファイル名とパスを分ける方法を説明しました。また、パスとファイル名を結合する方法についても説明しました。次のレッスンでは、テキスト ファイルに書き込む方法について説明します。
次のレッスン : 「テキスト ファイルへの書き込み」
参照
処理手順
方法 : Visual Basic でファイル パスを解析する