- - PR -
exeが実行されているカレントディレクトリを取得したい
1
投稿者 | 投稿内容 | ||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
投稿日時: 2008-08-25 11:28
こんにちは。
サービスから実行されているせいでしょうか?C:\windows\systemにカレントディレクトリが設定されているのですが、これを自ディレクトリ(実行されているexeがある)として取得したいのですが、どのように取得するのでしょうか?System.Environmentにも見当たりませんでした(comandlineはexe名込みのフルパスを確認しましたが)。 System.IO.Directory.GetCurrentDirectory() よろしくお願いします。 | ||||||||||||
|
投稿日時: 2008-08-25 11:51
試していませんが、Assembly.Locationではいかがでしょう?
http://www.atmarkit.co.jp/fdotnet/dotnettips/016exepath/exepath.html | ||||||||||||
|
投稿日時: 2008-08-25 12:39
Assembly.LocationはURI形式で返してきたような気がする。
そのため、Path.GetDirectoryNameでディレクトリ名が取れなかったような記憶があります。 #ClickOnceだったからかもしれない [code Assembly.、GetExecutingAssembly.GetModules[0].FullyQualifiedName [/code] の方が良いかもしれない。 アプリケーションじゃないから、
では無理かも。 | ||||||||||||
|
投稿日時: 2008-08-25 13:09
ありがとうございます。
Assemblyに書かないとだめなんでしょうか?System関数からは取得できないと言うことでしょうか? 初心者ですいません。 | ||||||||||||
|
投稿日時: 2008-08-25 13:45
Assemblyに特別な設定?をする必要はありません。こんな感じで取得できます。
いまさらですが、、、System.Windows.Formsの参照設定が許されるのであれば、以下の方がよいと思います。
| ||||||||||||
|
投稿日時: 2008-08-26 17:00
ありがとうございます。
System.Environmentのcomandlineと同じようにexeも含んだパスでしたが、前後の¥マークが無く、こんな感じで出来ました! pass = System.Reflection.Assembly.GetEntryAssembly().Location; pass = pass.Replace("AppName.exe", ""); pass = pass.Replace("¥¥", "/"); (¥は大文字にしてます) ありがとうございました。 |
1