Acessando arquivos através da rede janelas com comprimento MAX_PATH perto
-
02-07-2019 - |
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?
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?