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?

Était-ce utile?

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.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top