230 votes

Obtenir le nom de fichier de la chaîne d’URI en c#

J’ai cette méthode pour saisir le nom de fichier d’une chaîne URI. Que puis-je faire pour le rendre plus robuste ?

425voto

Reed Copsey Points 315315

Vous pouvez simplement faire un Système.Uri de l'objet, et l'utilisation IsFile pour vérifier que c'est un fichier, puis d'Uri.LocalPath pour extraire le nom du fichier.

Ce est beaucoup plus sûr, comme il vous fournit un moyen de vérifier la validité de l'URI.


Edit en réponse au commentaire:

Pour obtenir le nom complet du fichier, j'utilise:

Uri uri = new Uri(hreflink);
if (uri.IsFile) {
    string filename = System.IO.Path.GetFileName(uri.LocalPath);
}

Cela ne fait tout de la vérification des erreurs pour vous, et est la plate-forme neutre. Tous les cas particuliers sont gérés pour vous rapidement et facilement.

86voto

Lex Zhang Points 71

Uri.IsFile ne fonctionne pas avec des URL http. Cela fonctionne seulement pour « file:// ». Depuis le site MSDN : « la propriété IsFile est true lorsque la propriété Scheme est égal à UriSchemeFile. » Donc vous ne peut pas compter là-dessus.

8voto

Mike Hofer Points 6559
<pre><code></code><p>Bien sûr, cela suppose que vous avez analysé le nom de fichier.</p><p><pre><code></code></pre><p>Cela doit gérer les espaces et autres dans le nom du fichier.</p></pre>

0voto

Daniel A. White Points 91889

Troncature à le `` pour les chaînes de requête.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X