1. ホーム
  2. windows

[解決済み] ファイルパスの前に付ける「୧⃛(๑⃙⃘◡̈๑⃙⃘)୨⃛」は何ですか?

2022-02-28 05:37:32

質問

あるログの中に、次のような形式のファイルへの参照がありました。

\\?\C:\Path\path\file.log

を意味する文献が見当たりません。バックスラッシュの間の部分はホスト名を指していると思います。

例えば、私のWindowsパソコンでは、以下のようにしても問題なく動作します。

dir \\?\C:\

も、同じ結果でちょうどいい。

dir \\.\C:\

質問です。

  1. この特定のパスフォーマットにおけるクエスチョンマークの意味について、参考文献はありますか?
  2. このような形式のファイルパスはどのように生成されるのでしょうか?

解決方法は?

長い文章ですが、この分野の方なら一読の価値ありです。 http://msdn.microsoft.com/en-us/library/windows/desktop/aa365247%28v=vs.85%29.aspx

抜粋する。

Windows API には、Unicode 版もある多くの関数があります。 を許可し、パスの合計長を最大にします。 32,767文字。このタイプのパスは、以下のコンポーネントで構成されます。 で返される値を上限として、バックスラッシュで区切られます。 lpMaximumComponentLength のパラメータを指定します。 GetVolumeInformation 関数を使用します(この値は一般的に255文字です)。を指定する。 拡張された長さのパスを使用するには "\\?\" という接頭辞があります。例えば "\\?\D:\very long path" .

とします。

その "\\?\" のプレフィクスも使用することができます。 普遍的命名規則(UNC)である。を使用してこのようなパスを指定するには UNCを使用するには "\\?\UNC\" という接頭辞があります。例えば "\\?\UNC\server\share" , ここで "server" はコンピュータの名前であり "share" は 共有フォルダー これらの接頭辞はパスの一部としては使用されません。 そのものです。これらは、パスがシステムへ渡されることを示すものです。 を最小限の変更で使用することができません。 スラッシュでパスの区切り文字を表したり、ピリオドで カレントディレクトリ、ダブルドットは親ディレクトリを表します。 を使うことができないので "\\?\" のプレフィックスを相対パスで使用することができます。 相対パスは、常に合計で MAX_PATH 文字で構成されています。