問題タブ [working-directory]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
c# - C# 別のプロセスの作業ディレクトリを取得する
コマンドラインを読み取って、既知のプロセスで使用されるファイルの絶対パスを特定したいと考えています。現在、プロセスは、構成ファイルなどのさまざまなファイルを指すコマンド ラインの相対パスで開始されます。問題は、パスが実行可能ファイルを含むフォルダーに対して相対的でない場合、コマンド ラインで指定された相対パスを変換する方法がないことです。
たとえば、次の 2 つのバッチ ファイルがあります。
バッチ 1 CD c:\test\bin test.exe ..\config\config.ini
バッチ 2 CD c:\test bin\test.exe config\config.ini
バッチ ファイル 1 の場合、取得するコマンド ラインは「c:\test\bin\test.exe ..\config\config.ini」であり、バッチ ファイル 2 の場合は「c:\test\bin\test.exe config」を取得します。 \config.ini". したがって、これを参照してください。パスを解決できません。
とにかく手始めに、ManagementObjectSearcher を使用して WMI クエリからコマンド ラインを取得しました。コマンドラインで渡されたパスを解決するために、プロセスが開始された作業ディレクトリを取得する必要がありますが、どうすればよいですか?
編集:重要な詳細を1つ忘れました。別のプロセスの作業ディレクトリを取得したい。基本的に、私のメイン プログラムは別のプログラムから情報を収集します。実行可能ファイルの名前がわかっているので、プロセス ID を特定できます。コマンドラインも特定できます。コマンドラインの相対パスを解決できるように、実行可能ファイルが開始された作業ディレクトリまたは現在のディレクトリを見つける必要があります。質問がより明確になったことを願っています。
c++ - C++ で現在の作業ディレクトリを変更する
プラットフォームに依存しない方法で C++ の現在の作業ディレクトリを変更するにはどうすればよいですか?
direct.h
Windows 互換のヘッダー ファイルunistd.h
と UNIX/POSIX 互換の を見つけました。
c# - Visual Studio / C# で DLL 依存関係の作業ディレクトリを定義する方法
たとえば、C: から実行する実行可能ファイルがあります。実行可能ファイルは、別のディレクトリ (C:\MyDLLs など) からいくつかの DLL を参照します。問題は、これらの参照された DLL が、別のディレクトリに格納されている他の DLL に再び依存することです。これらの不足している DLL を探す場所を Visual Studio に指示できますか? どうもありがとう!
java - WebStartアプリケーションで作業ディレクトリファイルを利用できるようにするにはどうすればよいですか?
JWSを使用してインターネット上でJavaアプリケーションのデモを利用できるようにする必要があります。それはかなりうまくいきます。不足しているのは、アプリケーションで作業ディレクトリファイルを利用できるようにすることだけです。
getResource()の方法については知っています...問題は、同じアプリケーションに対して異なるプラグインがあり、それぞれが正しく機能するために、作業ディレクトリに異なるファイル(および多くの場合同じファイルの異なるバージョン)を必要とすることです。したがって、アプリケーションに別の動作をさせたい場合は、作業ディレクトリを変更するだけです。
現在、デモは署名されたjarファイルにパッケージ化されており、作業ディレクトリからのファイルが必要になるまで正しくロードされます。明らかに、このデモのインターネットユーザーはファイルの準備ができていません。これらのファイルをWebStartアプリケーション(読み取り/書き込みアクセス)が作業ディレクトリで利用できるようにする方法が必要です。
アプリケーションが起動時にファイル自体をダウンロードするようにしたり、起動時にファイルをjarにパッケージ化して抽出したりするなど、いくつかのことを考えました。
アドバイスや新しいアイデアを探しています。これからも作業を続けていきます...信頼できるものが見つかったら更新します。
どうもありがとうございます!
visual-c++ - Visual C++ でコンパイル時にプログラムの作業ディレクトリを変更する
Visual C++ で、プログラムの作業ディレクトリをコンパイル時の現在のディレクトリとは異なるように定義する方法はありますか? 上司は、実行可能ファイルをルート ディレクトリに置き、すべての DLL を別のディレクトリに置くことを望んでいます。
c# - Visual Studio C#ファイルの作業ディレクトリ
Visual Studio C#プロジェクトのプロパティの作業ディレクトリとは正確には何ですか。
右クリックして[プロパティ]に移動し、[デバッグ]タブに移動すると、コードの作成者がローカルマシンのフォルダーを指定した作業ディレクトリが表示されるプロジェクトが表示されます。その作業ディレクトリが何を意味し、どのような種類のファイルがそのディレクトリに保存されるのか知りたいです。
前もって感謝します。
multithreading - Perlでスレッドセーフな方法で現在のディレクトリを変更するにはどうすればよいですか?
私はThread::Pool::Simple
いくつかの作業スレッドを作成するために使用しています。動作中の各スレッドは、の呼び出しとそれにchdir
続く外部Perlスクリプトの実行(jbrowse
重要な場合はゲノムブラウザーから)など、いくつかの処理を実行します。私capturex
は外部スクリプトを呼び出して、その失敗で死ぬのに使用します。
複数のスレッドを使用すると、物事が乱雑になり始めることを発見しました。いくつかの調査の後。一部のスレッドの現在のディレクトリが正しくないようです。
おそらくchdir
スレッド間で伝播しますか(つまり、スレッドセーフではありません)?それとも何かありcapturex
ますか?
では、どうすれば各スレッドの作業ディレクトリを安全に設定できますか?
** アップデート **
実行中にdirを変更するという提案に従って、これら2つのコマンドをどの程度正確に渡す必要があるかを尋ねたいと思いますcapturex
。
現在私は持っています:
別のコマンドをに追加するにはどうすればよい@args
ですか?capturex
いずれかのコマンドのエラーで死に続けますか?
python - Python: 作業ディレクトリが異なるサブプロセス
このディレクトリの下にあるpythonスクリプトがあります:
内部では、別のディレクトリからプロセスを起動するためa.py
に使用します。subprocess.POPEN
Python コード:
そして、work/project/ の下に、次のように入力します。
エラー「file2.py、「そのようなファイルまたはディレクトリはありません」」
work/to_launch/
これらの依存ファイルを見つけることができるように、どうすれば追加file2.py
できますか?
windows - VBScript の現在のディレクトリ + サブディレクトリ?
VBScript で現在のディレクトリのサブディレクトリ内にあるファイルのパスを取得しようとしています。以下はうまくいかないようですか?
コード全体は次のとおりです。
java - Java + Linux: 作業ディレクトリはホーム フォルダーです
多くの人は、nautilus から JAR アプリケーションを開始するときに、CWD (現在の作業ディレクトリ) がホーム フォルダー (JAR があるフォルダーではなく) に設定されるという問題を抱えています。これは特に Linux ではなく、Nautilus のバグです。
ターミナルを開いてそこに手動で入力する代わりに、Jarを正しく起動するのを簡単にするトリックを知っている場合は、java -jar myJar.jar
以下に投稿してください。
ありがとう
問題の短いコード例:
Windows では、これは次のように表示されます。[The Path To The Jar]/ASimpleTextFile.txt
しかし、Linux では、次のように表示されます。/home/[yourName]/ASimpleTextFile.txt
構成ファイルへの相対パスを使用することが多いため、これは非常に悪い考えです。この方法では、ファイルがホームフォルダーを指しているため、それらは見つかりません。