2012-03-25 11 views
2

C#WinForms実行可能ファイルが格納されているフォルダを取得するにはどうすればよいですか?WinFormsアプリケーションによって作成された一時ファイルを格納する場所

私のプログラムはいくつかの一時ファイルを生成し、実行ファイルの場所が安全な場所に置かれているかどうか疑問に思っています。ファイルは単に一時ファイルであれば、あなたはおそらく次のように使用する必要があり

答えて

9

string tempPath = System.IO.Path.GetTempPath(); 

あなたの現在のユーザーのTempフォルダを与えるだろう。これはおそらく、exeの現在のフォルダにそれらを書き込もうとするより安全な賭けです。

詳細は:

string directory = Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location); 

あなたはちょうどあなたがまた、ファイル名を取得するためにPath.GetTempFileName()を使用することができます一時ファイルを生成する場合:http://msdn.microsoft.com/en-us/library/system.io.path.gettemppath.aspx

+3

Program Filesフォルダは標準ユーザーが書き込みできません.Exeのフォルダが書き込み可能であると想定することは決して安全です。 – shf301

8

あなたはAssembly.GetExecutingAssembly().Location由来のディレクトリを使用することができます。

1

それは(Dan Rigbyが言ったように)、一時ディレクトリに格納する一時ファイルに好まれます

string directory = System.IO.Path.GetTempPath(); 

しかし、あなたはまだどこその後、アプリケーションが実行されてからディレクトリに一時ファイルを保存したい場合は、単にWinFormsのためApplication.StartupPathを使用することができますアプリケーション、

string directory = System.Windows.Forms.Application.StartupPath; 
関連する問題