Pergunta

Eu estou usando C ++ e acessar um caminho UNC em toda a rede. Este caminho é ligeiramente maior do que MAX_PATH. Então eu não posso obter um identificador de arquivo.

Mas se eu executar o programa no computador em questão, o caminho não é maior que MAX_PATH. Para que eu possa obter um identificador de arquivo. Se eu mudar o nome do arquivo para ter menos caracteres (comprimento menos de nome do computador) que eu posso acessar o arquivo.

Pode este arquivo ser acessado através da rede mesmo saber o nome do computador nos coloca caminho UNC-lo sobre o limite MAX_PATH?

Foi útil?

Solução

Lembro-me de que há alguma característica como usar \\?\ no início do caminho para contornar o limite MAX_PATH. Aqui é uma referência no MSDN:

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

Para máquinas remotas, você usaria um nome de caminho, tais como: \\?\unc\server\share\path\file. O \\?\unc\ é o prefixo especial e não é usado como parte do nome do arquivo real.

Outras dicas

Você pode ser capaz de obter um identificador para o arquivo se você tentar abrir o arquivo depois de converter o nome do arquivo para um curto (8.3) nome do arquivo. Se isso falhar, você pode mapear a dir o arquivo está em como uma unidade e acesso ao arquivo que forma?

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