MAX_PATH に近い長さの Windows ネットワーク経由でのファイルへのアクセス
-
02-07-2019 - |
質問
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) ファイル名に変換してからファイルを開こうとすると、ファイルのハンドルを取得できる可能性があります。それに失敗した場合、ファイルが存在するディレクトリをドライブとしてマップし、その方法でファイルにアクセスできますか?
所属していません StackOverflow