×
[PR]上記の広告は3ヶ月以上新規記事投稿のないブログに表示されています。新しい記事を書く事で広告が消えます。
EXEファイルの実行フォルダが必要になることはよくあります。 フォルダを取得して、そこからの相対フォルダ参照で、データフォルダなどを作成・参照を行ったりしますので、 その方法について示します。
まず最初は通常のWindowsフォームを持っているEXEファイルに付いてです。
WindowsフォームでのEXEファイル取得
Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click Dim strPath As String = "" 'System.Windows.Forms.Application のSharedプロパティ「ExecutablePath」を参照 ' アプリケーションを開始した実行可能ファイルのパスを、ファイル名を含めて取得します。 strPath = System.Windows.Forms.Application.ExecutablePath Console.WriteLine("ExecutablePathdでのExeフルパス:[{0}]", strPath) '因みに、System.Windows.Forms.Application のSharedプロパティ「StartupPath」を参照 ' アプリケーションを開始した実行可能ファイルのファイル名を含まないパス取得します。 strPath = System.Windows.Forms.Application.StartupPath Console.WriteLine("StartupPathでのExeフルパス:[{0}]", strPath) End Sub
実行結果は以下の様になります。
ExecutablePathdでのExeフルパス:[C:¥TestSrv¥BlogTest¥BlogTest¥bin¥Debug¥BlogTest.EXE] StartupPathでのExeフルパス:[C:¥TestSrv¥BlogTest¥BlogTest¥bin¥Debug]
コンソールアプリの場合にはこれは使えないので、以下の様に自分自身のアセンブリを取得し、そのLocationプロパティ を取得することでEXEのフルパスが取得できます。
GetExecutingAssembly().Location でのEXEファイル取得
Module MdlMainPath 'Main関数 Sub Main() Dim strPath As String = "" 'GetExecutingAssembly().Locationでの実行ファイルのパスを取得する strPath = System.Reflection.Assembly.GetExecutingAssembly().Location Console.WriteLine("GetExecutingAssembly().LocationでのExeフルパス:[{0}]", strPath) 'パスから実行フォルダのみを取り出す strPath = System.IO.Path.GetDirectoryName(strPath) Console.WriteLine("GetExecutingAssembly().LocationでのExeフォルダ:[{0}]", strPath) End Sub End Module
実行結果は以下の様になります。
GetExecutingAssembly().LocationでのExeフルパス:[C:¥TestSrv¥BlogTest¥BlogTest¥bin¥Debug¥BlogTest.exe] GetExecutingAssembly().LocationでのExeフォルダ:[C:¥TestSrv¥BlogTest¥BlogTest¥bin¥Debug]
関連する記事
⇒フォルダコピー(サブフォルダ以下も含む):[Directory.GetFiles,Directory.GetDirectories]⇒指定フォルダ内の全ファイルを削除 :[Directory.GetFiles,File.Delete]
⇒指定フォルダ内の全ファイルをクリア :[Directory.GetFiles,File.Delete]
PR
コメント