astel-labs.net

C#などのプログラミングTipsや雑記をつらつらと書くかもしれないブログです。

  • Home
RSS

プロセス実行時にパスが通っているかをチェック

Posted on 2010年8月19日 by Nymphaea
No CommentsLeave a comment

前回からずいぶんと間が空いてしまいました

今回は、System.Diagnostics.Process クラスの Start メソッドを利用してアプリケーションを実行する際に、Process.StartInfo.FileName プロパティに設定するファイル名がフルパス名ではなかった場合に、指定したアプリケーションのパスがきちんと通って、かつ実体が存在しているかをチェックする必要があったため調べてみたのですが、なんとなく .net の標準機能ではそこまでチェックできそうにありませんでした
(Process.Start メソッド自体は、パスさえ通っていればフルパス名ではなくとも実行してくれます)

 

そこで、素直に環境変数を取得して「PATH」に登録されているパスと結合しながらチェックしていく方法を紹介します

 

まず、環境変数が設定されている場所は言うまでもないと思いますが、「マイコンピュータ」を右クリックして「プロパティ」を開くと(Vistaと7はシステムダイアログから、さらにシステムの詳細設定を選択)「システムのプロパティ」ダイアログが開きます

ここから、「詳細設定」タブから、「環境変数」のボタンを選択します

 

 

.net プログラムからの環境変数の取得自体はとても簡単です

// 環境変数の取得(PATH要素)
string variable = System.Environment.GetEnvironmentVariable( "Path", System.EnvironmentVariableTarget.Process );

// パスの分割
string[] list = variable.Split( ';' );
foreach( var path in list ) {
    // 実体の存在チェック
    if( System.IO.File.Exists( System.IO.Path.Combine( path, "explorer.exe" ) ) ) {
        break;
    }
}

 

上記のソースを実行すると、「explorer.exe」は foreach 文の path 変数が「C:\Windows」のときに Exists メソッドが true を返すことが確認できます

本当は、Exists メソッドがパスが通っているかをチェックしてくれるオーバーロードを持ってくれるといいのですが・・・

Categories: C#, プログラミング

 

SharePoint で jQuery を利用する
Xmlファイルにリソースファイルを埋め込む

コメントを残す

コメントを投稿するにはログインしてください。

  • 2010年8月
    日 月 火 水 木 金 土
    1234567
    891011121314
    15161718192021
    22232425262728
    293031  
    « 7月   9月 »
  • 最近の投稿

    • raspberry pi に nginx をセットアップする
    • VSCode を日本語化する
    • raspberry pi に VSCode をインストールする
    • WindowsのプロダクトIDを取得する
    • SQL Server – money型とdecimal型を併用した金額計算
  • アーカイブ

    • 2020年3月
    • 2016年12月
    • 2014年6月
    • 2014年5月
    • 2013年7月
    • 2012年11月
    • 2012年7月
    • 2012年5月
    • 2012年4月
    • 2011年4月
    • 2011年1月
    • 2010年11月
    • 2010年10月
    • 2010年9月
    • 2010年8月
    • 2010年7月
    • 2010年6月
    • 2010年5月
    • 2010年4月
  • カテゴリー

    • C#
    • jQuery
    • OpenCV
    • raspberry pi
    • SharePoint
    • Silverlight
    • SQL Server
    • WCF
    • WPF
    • プログラミング
    • 未分類
    • 雑記
© astel-labs.net. Proudly Powered by WordPress | Nest Theme by YChong

このブログ内で公開されているソースコードおよびサンプルプログラムに関わるライセンスはすべて修正BSDライセンス(New BSD License)として公開しています。
但し、サンプルプログラムに含まれる外部アセンブリが同様のライセンスとは限りませんので、利用する前に必ずすべてのライセンスの確認を行ってください。