玄関へお回り下さい。
フォルダー(ディレクトリ)に関するパス操作色々(6個)              (SNo.034)

1.プログラムを起動したフォルダーのパスを取得
2.アプリケーションの現在の作業ディレクトリを取得及び移動
3.プログラムを起動したルートディレクトリを取得
4.フルパス文字列からディレクトリ名を取得する
5.相対パスから絶対パスを取得する
6.2つのパス文字列を結合する
使用コントロール Button1  〜 Button6
その他条件 WindowsXP(Vista) Visual Basic 2005(VB2008)
 
1.プログラムを起動したフォルダーのパスを取得
 
Private Sub Button1_Click(ByVal sender As System.Object, _
                          ByVal e As System.EventArgs) Handles Button1.Click
'プログラムを起動したフォルダーのパスを取得
    'Application.StartupPath プロパティ 
    'アプリケーションを開始した実行可能ファイルのファイル名を含まないパスを取得
    Dim path As String
    path = Application.StartupPath()
    Debug.WriteLine(path)               '結果  C:\VBDotNet1\034\bin
End Sub

2.アプリケーションの現在の作業ディレクトリを取得及び移動
 
Private Sub Button2_Click(ByVal sender As System.Object, _
                          ByVal e As System.EventArgs) Handles Button2.Click
'アプリケーションの現在の作業ディレクトリを取得及び移動
    'Directory.SetCurrentDirectory メソッド
    'アプリケーションの現在の作業ディレクトリを指定したディレクトリに設定します。
    '確認の為に現在の作業ディレクトリを取得
    Console.WriteLine(System.IO.Directory.GetCurrentDirectory()) '結果 C:\VBDotNet1\034\bin

    '現在の作業ディレクトリを c:\test\ に移動します
    System.IO.Directory.SetCurrentDirectory("c:\test\")

    '確認の為に現在の作業ディレクトリを取得
    Console.WriteLine(System.IO.Directory.GetCurrentDirectory()) '結果 c:\test
    '作業フォルダーを移動しても StartupPath の取得結果は変りません
    Console.WriteLine(Application.StartupPath())                 '結果 C:\VBDotNet1\034\bin
End Sub

3.プログラムを起動したルートディレクトリを取得
 
Private Sub Button3_Click(ByVal sender As System.Object, _
                          ByVal e As System.EventArgs) Handles Button3.Click
'プログラムを起動したルートディレクトリを取得
    'Path.GetPathRoot メソッド 
    '指定したパスのルート ディレクトリ情報を取得します。
    Debug.WriteLine(System.IO.Path.GetPathRoot _
                                (Application.StartupPath()))  '結果  C:\
    'Directory.GetDirectoryRoot メソッド 
    '指定したパスのボリューム情報またはルート情報、あるいはその両方を返します。
    Debug.WriteLine(System.IO.Directory.GetDirectoryRoot _
                              (Application.StartupPath()))    '結果  C:\
End Sub

4.フルパス文字列からディレクトリ名を取得する
 
Private Sub Button4_Click(ByVal sender As System.Object, _
                          ByVal e As System.EventArgs) Handles Button4.Click
'フルパス文字列からディレクトリ名を取得する
    'Path.GetDirectoryName メソッド
    '指定したパス文字列のディレクトリ情報を返します。
    '指定したファイルやフォルダーは存在しなくてもよい
    Debug.WriteLine(System.IO.Path.GetDirectoryName _
                        ("C:\Test1\Test2\test.exe")) '結果  C:\Test1\Test2
End Sub

5.相対パスから絶対パスを取得する
 
Private Sub Button5_Click(ByVal sender As System.Object, _
                          ByVal e As System.EventArgs) Handles Button5.Click
'相対パスから絶対パスを取得する
    'Path.GetFullPath メソッド                   'C:\VBDotNet1\034\bin\034.exe を起動
    '指定したパス文字列の絶対パスを返します。
    Debug.WriteLine(System.IO.Path.GetFullPath("..\..\")) '結果 C:\VBDotNet1\
    Debug.WriteLine(System.IO.Path.GetFullPath("."))      '結果 C:\VBDotNet1\034\bin
    Debug.WriteLine(System.IO.Path.GetFullPath(".."))     '結果 C:\VBDotNet1\034
End Sub

6.2つのパス文字列を結合する
 
Private Sub Button6_Click(ByVal sender As System.Object, _
                          ByVal e As System.EventArgs) Handles Button6.Click
'2 つのパス文字列を結合する
    'Path.Combine メソッド
    '2 つのパス文字列を結合する
    Debug.WriteLine(System.IO.Path.Combine _
                        ("C:\VBDotNet", "Test1.exe"))   '結果 C:\VBDotNet\Test1.exe
    Debug.WriteLine(System.IO.Path.Combine _
                        ("C:\VBDotNet\", "Test1.exe"))  '結果 C:\VBDotNet\Test1.exe
    '※ \ 等のパス区切り文字を自動的に付加する。
End Sub






2004/05/09
2005/09/16


VBレスキュー(花ちゃん)
VB.NET2003  VB2005