2

フォルダ階層を実用的に作成したい。ただし、フォルダ名が 260 文字を超えてフォルダの作成に失敗する場合があります。Win32 ファイル名前空間を使用して、このフォルダー階層を作成しました。次の形式のフォルダ構造を作成したいと考えています。ドライブ文字:\FOLDER1\FOLDER2\FOLDER3\FOLDER4........\FOLDER(N-1)\FOLDER(N)

FOLDER1、FOLDER2、FOLDER3などはフォルダの名前です。これらの名前の長さは、次の例で 260 文字を超えています。

FOLDER1 name is qwertyuiopasdfghjklzxcvbnmqwertyuiopasdfghjklzxcvbnmqwertyuiopasdfghjklzxcvbnmqwertyuiopasdfghjklzxcvbnmqwertyuiopasdfghjklzxcvbnmqwertyuiopasdfghjklzxcvbnmqwertyuiopasdfghjklzxcvbnmqwertyuiopasdfghjklzxcvbnmqwertyuiopasdfghjklzxcvbnmqwertyuiopasdfghjklzxcvbnmqwertyuiopasdfghjklzxcvbnmqwertyuiopasdfghjklzxcvbnm

FOLDER2 name is mnbvcxzlkjhgfdsapoiuytrewqmnbvcxzlkjhgfdsapoiuytrewqmnbvcxzlkjhgfdsapoiuytrewqmnbvcxzlkjhgfdsapoiuytrewqmnbvcxzlkjhgfdsapoiuytrewqmnbvcxzlkjhgfdsapoiuytrewqmnbvcxzlkjhgfdsapoiuytrewqmnbvcxzlkjhgfdsapoiuytrewqmnbvcxzlkjhgfdsapoiuytrewqmnbvcxzlkjhgfdsapoiuytrewqmnbvcxzlkjhgfdsapoiuytrewqmnbvcxzlkjhgfdsapoiuytrewq

このように行きます。

このフォルダ名/ファイル名の長さの制約をどのように克服できますか。

OS : Windows 7 64 ビットおよび Windows Server 2008 R2 64 ビット。

助けてください

4

3 に答える 3

2

MSDN のCreateDirectory 関数は、これを正確に説明しています。

この制限を 32,767 ワイド文字に拡張するには、関数の Unicode バージョンを呼び出し、\\?\パスの先頭に追加します。詳細については、ファイルの命名を参照してください。

参照: MAX_PATH よりも長いファイルを処理する必要がありますか?

NTFS は最大 32K (32,767 ワイド文字) のファイル名をサポートします。正しい API とファイル名の正しい構文のみを使用する必要があります。\\?\基本ルールは次のとおりです。ファイル名はlikeで始まる必要があります\\?\C:\Temp。UNC で使用できるのと同じ構文: \\?\Server\share\Path.

于 2013-03-22T09:57:32.023 に答える
1

次の 2 つのトリックのいずれかを使用できます。

  • のようにパスの長さが 260 文字を超えるフォルダ構造を作成するには、 をC:\folder1\folder2\...\folder20作成しC:\folder19、そのすべてのサブフォルダをにC:\folder20移動してから、 を作成して内部に移動します。この構造の作成が完了するまで繰り返します。folder20C:\folder19C:\folder18C:\folder19folder20C:\folder18
  • \\?\C:\folder1\folder2\...\folder20表記を使用してパスを作成できます。詳細については、http: //msdn.microsoft.com/en-us/library/windows/desktop/aa365247 (v=vs.85).aspx ( Maximum Path Length Limitationという単語を検索してください) を参照してください。
于 2013-03-22T10:00:15.213 に答える
1

1 つのパス コンポーネント(フォルダ名やファイル名など) は、 によってMaximumComponentLength返されるの値によって制限されGetVolumeInformationます。これは理論的にはファイルシステム固有ですが、実際には常に 255 です。

そのため、より長いファイル コンポーネントをサポートする独自のファイル システム ドライバーを作成しない限り、要求したことを行うことはできません。ただし、できることは、他の回答のポインターのように、合計長が 260 文字を超えるパスを作成することです。

于 2013-03-22T13:33:52.503 に答える