MAX_PATH に近い長さの Windows ネットワーク経由でのファイルへのアクセス

StackOverflow https://stackoverflow.com/questions/112946

質問

C++ を使用しており、ネットワーク経由で UNC パスにアクセスしています。このパスは MAX_PATH よりわずかに大きくなります。そのため、ファイルハンドルを取得できません。

しかし、問題のコンピュータでプログラムを実行すると、パスは MAX_PATH を超えません。これでファイルハンドルを取得できるようになりました。ファイルの名前を文字数が少なくなるように変更すると (コンピューター名の長さを差し引いたもの)、ファイルにアクセスできます。

UNC パス内のコンピューター名が MAX_PATH 制限を超えていることがわかっていても、ネットワーク経由でこのファイルにアクセスできますか?

役に立ちましたか?

解決

を使用するような機能があったことを思い出します \\?\ 迂回するための小道の始まりにある MAX_PATH 限界。MSDN のリファレンスは次のとおりです。

http://msdn.microsoft.com/en-us/library/aa365247(VS.85).aspx

リモート マシンの場合は、次のようなパス名を使用します。 \\?\unc\server\share\path\file. 。の \\?\unc\ は特別なプレフィックスであり、実際のファイル名の一部としては使用されません。

他のヒント

ファイル名を短い (8.3) ファイル名に変換してからファイルを開こうとすると、ファイルのハンドルを取得できる可能性があります。それに失敗した場合、ファイルが存在するディレクトリをドライブとしてマップし、その方法でファイルにアクセスできますか?

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top