フォルダー(ディレクトリ)に関するパス操作色々(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 |