次の方法で共有


詳細情報 : ファイル パスを解析する

更新 : 2007 年 11 月

アプリケーションでファイルを操作するとき、ファイル パスの一部だけを参照することが必要になる場合がよくあります。たとえば、ファイルの名前をパスを含めずに表示したい場合があります。My.Computer.FileSystem オブジェクトを使用すると、ファイルを解析するタスクを実行できます。

ファイルのパスは、My.Computer.FileSystem.GetParentPath メソッドを使用して取得できます。My.Computer.FileSystem.GetName メソッドを使用すると、パスを除いたファイル名を取得できます。

たとえば、「フォルダ内のファイル名の取得」で説明されている Picture Viewer アプリケーションでは、各ピクチャの完全パスを表示する代わりに、パスを除いてファイルの名前だけを表示できます。このレッスンでは、ドキュメント フォルダ内のすべてのファイルの名前をリスト ボックスに追加します。

Bb384490.alert_note(ja-jp,VS.90).gifメモ :

Windows XP には、マイ ドキュメント、マイ ピクチャ、およびマイ ミュージックという特別なフォルダがあります。Windows Vista では、これらのフォルダの名前から "マイ" がなくなり、ドキュメント、ピクチャ、およびミュージックという名前になっています。ただし、このレッスンのコードは Windows XP と Windows Vista のどちらでも動作します。

やってみよう

ファイル名を解析するには

  1. [ファイル] メニューの [新規作成] をポイントし、[プロジェクト] をクリックします。

  2. [新しいプロジェクト] ダイアログ ボックスの [テンプレート] ペインで、[Windows アプリケーション] をクリックします。

  3. [プロジェクト名] ボックスに「Parse File Path」と入力し、[OK] をクリックします。

    新しい Windows フォーム プロジェクトが開きます。

  4. フォームに ListBox コントロールを追加します。既定の名前の ListBox1 をそのまま使用します。

  5. フォームに Button コントロールを追加し、既定の名前の Button1 をそのまま使用します。この Text プロパティを「Load」に変更します。

  6. フォームを右クリックし、[コードの表示] をクリックします。

  7. コード ファイルの先頭にある Public Class Form1 ステートメントの下に、次のコードを追加します。このコードは、ドキュメント フォルダ用の変数を作成します。

    Dim FilePath As String = _
        My.Computer.FileSystem.SpecialDirectories.MyDocuments
    
  8. 左側のドロップダウン リスト ([クラス名]) で、[Button1] をクリックします。

  9. 右側のドロップダウン リスト ([メソッド名]) で [Click] をクリックして、Button1_Click イベント ハンドラを作成します。

  10. 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
    
  11. F5 キーを押してプログラムを実行します。

  12. フォームが表示されたら、[Load] ボタンをクリックします。

    ドキュメント フォルダ内の各ファイルの名前 (パスを除く) がリスト ボックスに表示されます。

  13. Parse File Path アプリケーションを閉じます。

ファイル名とフォルダ パスの結合

リストされたファイルに対してアクションを実行する場合は、ファイルの名前とパスの両方を指定する必要があります。My.Computer.FileSystem.CombinePath メソッドを使用すると、名前とパスを結合できます。リスト ボックス内の名前をクリックしたときに、ファイルのパスと名前をメッセージ ボックスに表示する方法を次の例に示します。

ファイル名とフォルダ パスを結合するには

  1. デザイナ ビューで ListBox をダブルクリックして、既定の SelectedIndexChanged イベント ハンドラを入力します。

  2. ListBox1_SelectedIndexChanged イベント ハンドラに次のコードを追加します。このコードは、フォルダ パスとファイル名を結合し、結果として作成された名前をメッセージ ボックスに表示します。

    MsgBox(My.Computer.FileSystem.CombinePath( _
        FilePath, Me.ListBox1.SelectedItem))
    
  3. F5 キーを押してプログラムを実行します。

  4. フォームが表示されたら、[Load] ボタンをクリックします。

  5. リスト ボックスで、ファイル名の 1 つをクリックします。

  6. メッセージ ボックスにファイルの名前とパスが表示されます。

  7. アプリケーションを閉じます。

次の手順

このレッスンでは、ファイル パスを解析してファイル名とパスを分ける方法を説明しました。また、パスとファイル名を結合する方法についても説明しました。次のレッスンでは、テキスト ファイルに書き込む方法について説明します。

次のレッスン : 「テキスト ファイルへの書き込み

参照

処理手順

フォルダ内のファイル名の取得

方法 : Visual Basic でファイル パスを解析する

概念

My による開発

その他の技術情報

ファイル システムの使用 : ファイルの書き込みと読み取り

Visual Basic ガイド ツアー