109 votes

Comment puis-je trouver le chemin court d'un répertoire/fichier Windows ?

Je dois utiliser des noms de chemin raccourcis pour une application que j'utilise. Par exemple, j'ai besoin de C:\PROGRA~1\ au lieu de C:\Program Files. Le programme ne peut pas gérer les espaces et n'acceptera pas les chemins entre guillemets (par exemple "C:\Program Files").

Si cela peut aider, j'utilise Windows 7. Je peux accéder à n'importe quelle version depuis XP, si nécessaire.

0voto

Ashok Points 1

J'ai installé les modules node en exécutant npm install sur un modèle de base. En essayant de supprimer ces dossiers, Windows ne nous permet pas de les supprimer car le chemin est trop long pour pouvoir le gérer.

Après quelques recherches superficielles, j'ai pensé qu'il serait judicieux d'écrire mon propre extrait de code pour renommer les dossiers de la racine à la feuille afin qu'il lance une exception de violation pour cette tentative également.

Cela fonctionne pour moi. Voici le code pour le projet C#.

    public static int directoryCounterIndex = 0;
    public static void Main(string[] args)
    {
        string dirPath = @"D:\Studies\MeanStack\a\nodem";
        RenameDirectories(dirPath);
    }

    private static void RenameDirectories(string dirPath)
    {
        directoryCounterIndex += 1;
        var newPath = Path.GetDirectoryName(dirPath) + Path.DirectorySeparatorChar + directoryCounterIndex.ToString();
        Directory.Move(dirPath, newPath);
        var subDirectories = Directory.GetDirectories(newPath);
        foreach (var subDirectory in subDirectories)
        {
            RenameDirectories(subDirectory);
        }
    }

3 votes

Veuillez relire attentivement la question. Votre réponse ne répond pas à la question initiale.

-1voto

user556501 Points 5

Il suffit de remplacer les espaces par

%20

C'est ainsi que les choses sont "traduites", et les espaces deviennent %20.

Si vous avez vraiment besoin de beaucoup, ouvrez simplement votre navigateur et tapez quelque chose comme

test ";($#< et trouvez le mot test, et voyez que l'espace est %20 et ainsi de suite...

0 votes

Je ne pense pas que tu aies raison. Cela ne produit pas un résultat positif: if exist C:\Program%20Files\ (echo exists)

3 votes

Vous parlez de quelque chose de complètement différent. Le point principal est que les noms de répertoire et de fichiers sont tronqués à 8 caractères. Le navigateur n'a rien à voir avec cela.

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X