windows - 確認方法 - 完全修飾パス とは




C:\ WINDOWS \ system32というパスが常に存在すると想定するのは安全ですか? (4)

GetWindowsDirectory Win32 APIを使用して現在のWindowsディレクトリを取得し、それにSystem32を追加して存在するかどうかを確認します。

2000年以降のOS(あらゆる言語)から、このパスは常に存在すると思いますか? たとえば、ある言語でwin xpを実行すると、 "Program Files"ディレクトリの名前が違うことがわかります。 それではSystem32フォルダについては本当ですか?

ありがとう。 Ohad。


ちょうどFYI、しかし、ターミナルサーバー環境(つまり、Citrix)で、GetWindowsDirectory()がリモートユーザーの一意のパスを返すことがあります。

リンクテキスト

ますます多くの企業が仮想デスクトップを使用しているため、開発者はこれを念頭に置く必要があります。


Windowsは、別のハードドライブや別のフォルダにインストールすることができます。 %windir%または%systemroot%環境変数を使用してwindowsフォルダに移動し、system32を追加します。 または、%path%変数を使用します。これは通常、最初の入り口であり、dll AFAIKなどのファイルを検索するための優先メソッドです。 コメントごとに:最初の項目であるsystem32ディレクトリにあまり依存しないでください。 私はそれがどこかで%path%にあると仮定するのは安全だと思います。


あなたは確かにそれを仮定することはできません:Windowsは、別のドライブ文字や別のディレクトリにインストールすることができます。 以前の作業では、PC WindowsはD:\ WINNTなどにインストールされていました。

簡単な答えは、API呼び出しGetSystemDirectory()を使用して、後にあるパスを返すことです。

もっと長い答えは、本当にこれを知る必要があるのか​​ということです。 Windowsのディレクトリにファイルをコピーするためにそれを使用している場合、私は本当にこれを行うには尋ねることをお勧めします。 他のアプリケーションを非常に簡単に混乱させる可能性があるので、Windowsディレクトリへのコピーはお勧めしません。 パスを使用してDLLを検索する場合は、OSに依存せずにパスを指定しないで適切なパスを見つけるのはなぜですか? あなたがOSファイルの一部を掘り下げているのなら、それは将来的にはうまくいくのでしょうか? 一般的には、将来のWindowsバージョンでプログラムを動作させたい場合は、明示的にWindowsディレクトリを突き止めないほうがよいでしょう。





operating-system