4.フォルダー(ディレクトリ)に関するパス操作色々(35_Fld_04) (旧、SampleNo.034) |
1.プログラムを起動したフォルダーのパスを取得 2.アプリケーションの現在の作業ディレクトリを取得及び移動 3.プログラムを起動したルートディレクトリを取得 4.フルパス文字列からディレクトリ名を取得する 5.相対パスから絶対パスを取得する 6.2 つのパス文字列を結合する |
下記プログラムコードに関する補足・注意事項 動作確認:Windows 8.1 (Windows 7) / VB2013 (VB2010) / Framework 4.5.1 / 対象の CPU:x86 Option :[Compare Text] [Explicit On] [Infer On] [Strict On] Imports :追加なし 参照設定:追加なし その他 : : このサンプル等の内容を無断で転載、掲載、配布する事はお断りします。(私の修正・改訂・削除等が及ばなくなるので) 必要ならリンクをはるようにして下さい。(引用の場合は引用元のリンクを明記して下さい) |
1.プログラムを起動したフォルダーのパスを取得 |
Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click 'プログラムを起動したフォルダーのパスを取得 'Application.StartupPath プロパティ 'アプリケーションを開始した実行可能ファイルのファイル名を含まないパスを取得 Dim path As String path = Application.StartupPath() Debug.WriteLine(path) '結果 G:\VB2013\35_Fld_04\bin\Debug End Sub |
2.アプリケーションの現在の作業ディレクトリを取得及び移動 |
Private Sub Button2_Click(sender As Object, e As EventArgs) Handles Button2.Click 'アプリケーションの現在の作業フォルダーを取得及び移動 'Directory.SetCurrentDirectory メソッド 'アプリケーションの現在の作業フォルダーを指定したフォルダーに設定します。 '確認の為に現在の作業フォルダーを取得 Debug.WriteLine(System.IO.Directory.GetCurrentDirectory()) '結果 G:\VB2013\35_Fld_04\bin\Debug '現在の作業フォルダーを ..\..\..\ に移動します System.IO.Directory.SetCurrentDirectory("..\..\..\") '確認の為に現在の作業フォルダーを取得 Debug.WriteLine(System.IO.Directory.GetCurrentDirectory()) '結果 G:\VB2013 '作業フォルダーを移動しても StartupPath の取得結果は変りません Debug.WriteLine(Application.StartupPath()) '結果 G:\VB2013\35_Fld_04\bin\Debug End Sub |
3.プログラムを起動したルートディレクトリを取得 |
Private Sub Button3_Click(sender As Object, e As EventArgs) Handles Button3.Click 'プログラムを起動したルートフォルダーを取得 'Path.GetPathRoot メソッド '指定したパスのルートフォルダー情報を取得します。 Debug.WriteLine(System.IO.Path.GetPathRoot _ (Application.StartupPath())) '結果 G:\ 'Directory.GetDirectoryRoot メソッド '指定したパスのボリューム情報またはルート情報、あるいはその両方を返します。 Debug.WriteLine(System.IO.Directory.GetDirectoryRoot _ (Application.StartupPath())) '結果 G:\ End Sub |
4.フルパス文字列からディレクトリ名を取得する |
Private Sub Button4_Click(sender As Object, e As 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(sender As Object, e As EventArgs) Handles Button5.Click '相対パスから絶対パスを取得する 'Path.GetFullPath メソッド '指定したパス文字列の絶対パスを返します。 Debug.WriteLine(System.IO.Path.GetFullPath("..\..\")) '結果 G:\VB2013\35_Fld_04\ Debug.WriteLine(System.IO.Path.GetFullPath(".")) '結果 G:\VB2013\35_Fld_04\bin\Debug Debug.WriteLine(System.IO.Path.GetFullPath("..")) '結果 G:\VB2013\35_Fld_04\bin End Sub |
6.2 つのパス文字列を結合する |
Private Sub Button6_Click(sender As Object, e As EventArgs) Handles Button6.Click '2 つのパス文字列を結合する 'Path.Combine メソッド '2 つのパス文字列を結合する Debug.WriteLine(System.IO.Path.Combine _ ("C:\hoge", "Test1.exe")) '結果 C:\hoge\Test1.exe Debug.WriteLine(System.IO.Path.Combine _ ("C:\hoge\", "Test1.exe")) '結果 C:\hoge\Test1.exe '※ \ 等のパス区切り文字を自動的に付加する。 End Sub |
検索キーワード及びサンプルコードの別名(機能名) |