Accès aux fichiers sur le réseau Windows avec une longueur proche de MAX_PATH
-
02-07-2019 - |
Question
J'utilise C ++ et j'accède à un chemin UNC sur le réseau. Ce chemin est légèrement supérieur à MAX_PATH. Je ne peux donc pas obtenir de descripteur de fichier.
Mais si j'exécute le programme sur l'ordinateur en question, le chemin d'accès n'est pas supérieur à MAX_PATH. Je peux donc obtenir un descripteur de fichier. Si je renomme le fichier avec moins de caractères (moins la longueur du nom de l'ordinateur), je peux accéder au fichier.
Peut-on accéder à ce fichier sur le réseau même en sachant que le nom de l'ordinateur dans le chemin UNC le place au-dessus de la limite MAX_PATH?
La solution
Je rappelle qu'il existe certaines fonctionnalités telles que l'utilisation de \\? \
au début du chemin pour contourner la limite MAX_PATH
. Voici une référence sur MSDN:
http://msdn.microsoft.com/en -us / library / aa365247 (VS.85) .aspx
Pour les ordinateurs distants, vous utiliseriez un chemin tel que: \\? \ unc \ serveur \ partage \ chemin \ fichier
. Le \\? \ Unc \
est le préfixe spécial et ne fait pas partie du nom de fichier réel.
Autres conseils
Vous pourrez peut-être obtenir un descripteur du fichier si vous essayez d’ouvrir le fichier après avoir converti le nom du fichier en un nom de fichier court (8.3). Sinon, mappez le répertoire dans lequel se trouve le fichier et accédez ainsi au fichier.