Les noms de fichiers sont trop longs et Windows ne peut pas ouvrir les fichiers

12

Il y a un tas de fichiers sur un lecteur réseau, sur un chemin assez profond et la plupart des répertoires ont des noms longs. Je pense que ceux-ci ont été créés à l'origine lorsque quelqu'un a copié et collé le répertoire racine de ce groupe de fichiers de leur poste de travail local vers le lecteur réseau partagé. J'imagine que sur le poste de travail local, il n'y a eu aucun problème d'ouverture du fichier, mais maintenant qu'ils sont sur un chemin plus long sur le réseau, Windows ne peut pas les ouvrir lorsque je double-clique. J'ai également essayé de copier les fichiers et de les renommer quelque peu plus courts, mais Windows ne peut pas le faire également.

TL; DR

les fichiers du poste de travail de quelqu'un sur un chemin (hypothétique) comme celui-ci:

C:\Documents and Settings\SomeUser\Files\RootOfLongFileNames\LongSubdirectoryName1\...\VeryLongAndDescriptiveAndSpecificFilename.xls
-----------------------------------------^

ont maintenant été copiés et collés sur le réseau comme ceci:

Q:\Dir1\Dir2\ProjectA\FilesForSomething\SomeotherDirectory\Blahblah\RootOfLongFileNames\LongSubdirectoryName1\...\VeryLongAndDescriptiveAndSpecificFilename.xls
---------------------------------------------------------------------^

Et le chemin est désormais trop long pour être géré par Windows XP.

Des conseils sur la façon de lire ces fichiers?

FrustratedWithFormsDesigner
la source
D'accord ! Regardez superuser.com/questions/257472/…
bZezzz
@bZezzz: Il semblerait que cela fonctionnerait fichier par fichier, mais je cherche quelque chose pour rendre tout un tas accessible à la fois. La copie sur des postes de travail locaux serait OK mais les noms de fichiers longs doivent être conservés (ils fournissent un contexte très spécifique pour le contenu du fichier). En outre, de nombreux utilisateurs ici ne sont pas assez techniques pour commencer à ouvrir des fichiers à partir de la ligne de commande. Votre suggestion pourrait fonctionner pour moi et une autre personne.
FrustratedWithFormsDesigner

Réponses:

7

Essayez de remplacer le chemin par SUBST.EXE. Il est livré avec Windows:

C:\Users\shufler>subst /?
Associates a path with a drive letter.

SUBST [drive1: [drive2:]path]
SUBST drive1: /D

  drive1:        Specifies a virtual drive to which you want to assign a path.
  [drive2:]path  Specifies a physical drive and path you want to assign to
                 a virtual drive.
  /D             Deletes a substituted (virtual) drive.

Type SUBST with no parameters to display a list of current virtual drives.

Ce que vous voulez faire, c'est remplacer l'un des dossiers de la chaîne par une lettre de lecteur:

 C:\>subst X: Q:\Dir1\Dir2\ProjectA\FilesForSomething\SomeotherDirectory\Blahblah\RootOfLongFileNames\LongSubdirectoryName1

Le dossier LongSubdirectoryName1 est désormais accessible sur le lecteur X :. Lorsque vous avez terminé, vous pouvez supprimer votre substitution avecsubst X: /D

Si vous en avez besoin tout le temps, ajoutez-le à votre script de connexion.

Une autre approche consisterait à cartographier un lecteur plus bas dans la chaîne, d'où que Q: soit cartographié.

shufler
la source
2
J'ai récemment beaucoup fait face à ce problème et j'ai utilisé l'approche SUBST. À cette fin, j'ai trouvé que l'outil Visual Subst disponible sur ntwind.com/software/utilities/visual-subst.html est inestimable.
yosh m
6

Vous devrez renommer les noms de répertoire dans le chemin d'accès jusqu'à ce que le nom soit suffisamment court pour que le système d'exploitation y accède.

Je naviguerais jusqu'au premier dossier dont vous pouvez modifier le nom et le renommer en une seule lettre, puis je ferais de même pour chaque dossier suivant jusqu'à ce que vous obteniez le fichier nécessaire.

En ce qui concerne la nécessité de conserver la structure: il y a des limites dans lesquelles nous devons travailler sur les systèmes d'exploitation, et il n'est pas bon de fonctionner régulièrement en dehors de ces paramètres. Toute solution rapide ne sera désormais qu'un patch qui devra être réexécuté à l'avenir. Une vraie solution impliquera la réorganisation de la structure du répertoire de sorte que ce problème de chemin d'accès au dossier / nom de fichier extrêmement long ne soit plus nécessaire.

music2myear
la source
256 caractères.
bZezzz
Non, ils doivent utiliser un programme qui n'est PAS Windows Explorer, car Windows Explorer est inconscient des spécifications du système de fichiers et choisit paresseusement de s'en tenir au dénominateur le moins commun, ce qui rend impossible, par exemple, de simplement copier la racine existante d'un lecteur à la racine d'un autre lecteur identique (en capacité, format, etc.) sans rencontrer d'erreurs PATH TOO LONG.
Triynko
0

EDIT: À l'origine, j'ai suggéré d'utiliser robocopy, mais bien sûr, c'est XP et qui ne l'a pas pré-installé.

Il n'y a aucun moyen que vous puissiez «donner à tout le monde ce qu'ils veulent». Si le chemin du fichier est trop long, vous ne pourrez pas effectuer d'opérations sur les fichiers avec lui. Selon moi, vous avez quelques options:

  1. Suivez les étapes des autres publications et renommez les répertoires jusqu'à ce qu'ils soient courts. La bonne chose à propos des ordinateurs est que vous pouvez écrire un script pour non seulement faire cela pour vous, mais aussi garder une trace de ce que les noms d'origine étaient. Même avec un script, cela prendra inévitablement du temps.

  2. Obtenez un LiveCD Linux. Mettez-le dans l'ordinateur et démarrez à partir de ce CD. Allez voir le disque Windows qui sera monté automatiquement en tant que système de fichiers séparé. Obtenez tous les fichiers que vous souhaitez et placez-les dans un nouveau dossier sur votre bureau. Compressez ce dossier et placez-le sur un disque dur externe ou une clé USB ou si votre lecteur réseau autorise la copie vers le système de fichiers, déplacez-le vers un répertoire de niveau supérieur.

aqua
la source
Je n'ai pas installé robocopy et je ne suis pas sûr d'avoir accès à l'installer (c'est un ordinateur de travail). En outre, cela ressemble à beaucoup de travail pour chaque fichier. Mon exemple a été simplifié: il existe en fait plusieurs répertoires à plusieurs niveaux trop profonds, chacun contenant des fichiers qui sont maintenant inaccessibles en raison de problèmes de chemin trop longs. Je n'ai vraiment pas le temps de le faire pour tous les fichiers que tout le monde veut.
FrustratedWithFormsDesigner