次の方法で共有


SearchPathW 関数 (processenv.h)

指定したパス内の指定したファイルを検索します。

構文

DWORD SearchPathW(
  [in, optional]  LPCWSTR lpPath,
  [in]            LPCWSTR lpFileName,
  [in, optional]  LPCWSTR lpExtension,
  [in]            DWORD   nBufferLength,
  [out]           LPWSTR  lpBuffer,
  [out, optional] LPWSTR  *lpFilePart
);

パラメーター

[in, optional] lpPath

ファイルを検索するパス。

このパラメーターが NULL場合、関数はレジストリ依存のシステム検索パスを使用して一致するファイルを検索します。 詳細については、「解説」セクションを参照してください。

[in] lpFileName

検索するファイルの名前。

[in, optional] lpExtension

ファイルを検索するときにファイル名に追加する拡張子。 ファイル名拡張子の最初の文字はピリオド (.) である必要があります。 拡張子は、指定したファイル名が拡張子で終わらない場合にのみ追加されます。

ファイル名拡張子が不要な場合、またはファイル名に拡張子が含まれている場合、このパラメーターは NULLできます。

[in] nBufferLength

有効なパスとファイル名 (終端の null 文字を含む) を受け取るバッファーのサイズ (TCHAR

[out] lpBuffer

見つかったファイルのパスとファイル名を受け取るバッファーへのポインター。 文字列は null で終わる文字列です。

[out, optional] lpFilePart

有効なパスとファイル名の最後のコンポーネントのアドレス (lpBuffer内) を受け取る変数へのポインター。パス内の最後の円記号 (\) の直後の文字のアドレスです。

戻り値

関数が成功した場合、返される値は、バッファーにコピーされる文字列の長さ (TCHAR) であり、終端の null 文字は含まれません。 戻り値が nBufferLengthより大きい場合、返される値は、終端の null 文字を含め、パスを保持するために必要なバッファーのサイズです。

関数が失敗した場合、戻り値は 0 です。 拡張エラー情報を取得するには、GetLastError呼び出します。

備考

lpPath パラメーターが NULL場合、SearchPath は、次のレジストリ値の現在の値に基づいて一致するファイルを検索します。

System HKEY_LOCAL_MACHINE\\CurrentControlSet\Control\Session Manager\SafeProcessSearchMode

この REG_DWORD レジストリ値の値が 1 に設定されている場合、SearchPath は、最初にシステム パスで指定されているフォルダーを検索してから、現在の作業フォルダーを検索します。 このレジストリ値の値が 0 に設定されている場合、コンピューターは最初に現在の作業フォルダーを検索してから、システム パスで指定されているフォルダーを検索します。 このレジストリ キーのシステム既定値は 0 です。

SearchPath 関数で使用される検索モードは、SetSearchPathMode 関数を呼び出すことによって、プロセスごとに設定することもできます。

SearchPath 関数は、.dll ファイルを検索する方法としては、出力の使用目的が LoadLibrary 関数の呼び出しにある場合には推奨されません。 これにより、SearchPath 関数の検索順序が、LoadLibrary 関数で使用される検索順序と異なるため、間違った .dll ファイルが見つけられます。 .dll ファイルを見つけて読み込む必要がある場合は、LoadLibrary 関数を使用します。

ヒント Windows 10 バージョン 1607 以降では、この関数の Unicode バージョン (searchPathW) に対して、MAX_PATH 制限を削除することをオプトインできます。 詳細については、「名前付けファイル、パス、および名前空間の」の「パスの最大長制限」セクションを参照してください。
 
Windows 8 および Windows Server 2012 では、この関数は次のテクノロジでサポートされています。
テクノロジー サポート
サーバー メッセージ ブロック (SMB) 3.0 プロトコル はい
SMB 3.0 透過的フェールオーバー (TFO) はい
SMB 3.0 とスケールアウト ファイル共有 (SO) はい
クラスター共有ボリューム ファイル システム (CsvFS) はい
回復性のあるファイル システム (ReFS) はい
 

手記

processenv.h ヘッダーは、Unicode プリプロセッサ定数の定義に基づいて、この関数の ANSI または Unicode バージョンを自動的に選択するエイリアスとして SearchPath を定義します。 エンコードに依存しないエイリアスをエンコードに依存しないコードと組み合わせて使用すると、コンパイルエラーやランタイム エラーが発生する不一致が発生する可能性があります。 詳細については、「関数プロトタイプの 規則」を参照してください。

必要条件

要件 価値
サポートされる最小クライアント Windows XP [デスクトップ アプリのみ]
サポートされる最小サーバー Windows Server 2003 [デスクトップ アプリのみ]
ターゲット プラットフォーム の ウィンドウズ
ヘッダー processenv.h (Windows.h を含む)
ライブラリ Kernel32.lib
DLL Kernel32.dll

関連項目

ファイル管理機能の

FindFirstFile の

FindNextFile の

GetSystemDirectory の

GetWindowsDirectory の

SetSearchPathMode の