3

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

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

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

4

2 に答える 2

10

\\?\パスの先頭で制限を回避するために使用するような機能があることを思い出しMAX_PATHます。これがMSDNのリファレンスです:

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

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

于 2008-09-22T03:01:35.487 に答える
0

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

于 2008-09-22T02:59:36.550 に答える