7
votes

Fonctions de chemin pour URL

Je veux utiliser des fonctions de classe de chemin ( getdirectoryname , getfilename , combine , etc.) avec des chemins au format URL avec slash ( /).

Exemple de mon chemin:

"xxx: // serveur / dossier1 / dossier2 / fichier"

J'ai essayé de faire le travail avec des fonctions et à la fin, il suffit de remplacer le séparateur.

J'ai trouvé que la fonction getdirectoryName ne remplace pas correctement les barres obliques:

chemin.getdirectoryName (@ "xxx: // serveur / dossier / fichier") -> @ "xxx: \ serveur \ dossier"

Comme si vous voyez une barre oblique est perdue.

Comment puis-je amener les fonctions de chemin d'accès à utiliser le séparateur "alternatif"?

Puis-je utiliser une autre classe avec la même fonctionnalité?


0 commentaires

4 Réponses :


6
votes

J'ai peur getdirectoryname , getfilename , combine , etc. utilisez chemin.directoryseparatorchar dans la définition et vous Vous voulez chemin.altdirectoryseparatorchar .

Et puisque le chemin est une classe scellée, je pense que le seul moyen de faire est le remplacement de chaîne. Vous pouvez remplacer chemin.directoryseparatorchar ('\') avec chemin.altDirectorySeparatorCar ('/') et chemin.voluméeparatoratorchal (':') avec ": /"


0 commentaires

1
votes

Avez-vous envisagé d'utiliser une combinaison de système.uri, système.uribuilder et (si nécessaire) Système personnalisé.uperiparser Sous-classe (ES)?


0 commentaires

0
votes

Si l'URI est un fichier de fichier local du formulaire Fichier: // Quel que soit alors vous pouvez appeler Chemin de chaîne = nouveau uri (autre) .Localpath et appelez le chemin méthodes sur elle. Si vous ne pouvez pas vous garantir que l'URI concerne un chemin local, vous ne pouvez pas garantir des composants de l'URI correspond à des machines, dossiers, fichiers, extensions, répertoires d'utilisation, caractères de séparateur ou autre chose.


0 commentaires

6
votes

pour getdirectoryName () code>, vous pouvez utiliser

pageRoot = uri.Remove(uri.LastIndexOf('/') + 1);


0 commentaires