Pergunta

Por que não consigo criar um caminho de profunda cujos personagens no caminho é mais de 255 em arquivo NTFS Sistema? Parece um limite de FAT32, mas também existem em NTFS? Alguém pode fornecer alguns documentos?

Muito obrigado!

Foi útil?

Solução

A limitação de 260 caracteres não é uma limitação do sistema de arquivos, mas da API Win32. Win32 define MAX_PATH como 260 que é o que o API é usando para verificar o comprimento do trajecto passado para funções como FileCreate, FileOpen, etc (que são usados ??por .NET no BCL).

No entanto, você pode ignorar as regras Win32 e criar caminhos até 32 K caracteres Basicamente, você precisa usar o "\\ \ C: \ MyReallyLongPath \ File.txt". Sintaxe que você pode não tenha visto antes. Última vez que verifiquei, o arquivo e as classes FileInfo em .NET impediu de utilizar este tipo de caminho, mas você pode definitivamente fazê-lo de C / C ++. Aqui está um link para mais informações.

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

Outras dicas

Citado do wikipedia

Os nomes dos arquivos estão limitados a 255 UTF-16 palavras de código. certos nomes são reservados na raiz do volume diretório e não pode ser usado para arquivos. Estes são: $ MFT, $ MFTMirr, $ LogFile, $ Volume, $ AttrDef,. (ponto), $ Bitmap, $ Bota, $ BadClus, $ Seguro, $ Upcase, e US $ Estender; [3]. (Ponto) e $ Estender são os dois diretórios; a outros são arquivos. Os limites do kernel NT caminhos completos para 32.767 UTF-16 código palavras.

http://en.wikipedia.org/wiki/NTFS

Doc . Você certamente deve ser capaz de criar filepaths mais de 255 bytes, desde que cada componente do caminho indivíduo está sob isso. No entanto, você deve estar usando as versões Unicode (W) das chamadas de acesso a arquivos para obter este comportamento; se você estiver usando o ANSI (A) interfaces baseadas em bytes, como aqueles usados ??por stdio, você vai ser preso com as limitações da interface antiga caminho pré-Unicode.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top