2010-04-18 6 views
0

Je reçois une erreur « DirectoryNotFoundException », voici le code:C# - Problème lors de répertoires liste - DirectoryNotFoundException

string directorio = "D:\MUSICA\La Trampa - El Mísero Espiral De Encanto"; 
DirectoryInfo dir = new DirectoryInfo(directorio); 
DirectoryInfo[] dirs = dir.GetDirectories(); <------------This is the line I'm having this problem. 

Je crois qu'il est causé quand il essaie d'analyser la partie tilde de cette chaîne Mísero. le répertoire D:\MUSICA\La Trampa - El Mísero Espiral De Encanto existe parce que je peux le voir et y ai aussi des fichiers. Est-il possible d'envoyer cette chaîne correctement?

Merci

+1

Placez un point d'arrêt sur la variable directorio et vérifiez la valeur réelle qui augmentera la compréhension de la réponse Oded de la raison pour laquelle le chemin doit être échappé. –

Répondre

7

Votre code ne fonctionnerait pas pour commencer, que vous avez des codes d'échappement illégaux (\M et \L) dans la chaîne.

Vous devez vous échapper antislashs, ou utilisez un string literal:

string directorio = @"D:\MUSICA\La Trampa - El Mísero Espiral De Encanto"; 

Ou:

string directorio = "D:\\MUSICA\\La Trampa - El Mísero Espiral De Encanto"; 

Sinon, le M de MUSICA réchappés tout comme le L de La. Comme je l'ai déjà mentionné ce ne sont pas des codes d'échappement légaux, comme on peut le voir here.

+0

Je ne sais pas si c'est le cas, je peux accéder à d'autres répertoires dans D: \ Musica Merci quand même – HoNgOuRu

+0

@HoNgOuRu - lire ceci, peut-être cela vous convaincra ... http://msdn.microsoft.com /en-us/library/ms228362.aspx – Oded

+0

-1. "Séquence d'échappement non reconnue" est l'erreur que vous obtenez avec cette chaîne. Il aurait pu montrer un "mauvais" code, mais il n'a certainement pas donné le bon code - il ne compilerait même pas. –

0

Merci pour votre réponse, Le problème était d'un autre type. Le système d'exploitation ne peut pas non plus supprimer ce répertoire, il indique que le répertoire n'est pas là tant qu'il est. Cela peut être dû à une erreur HD. Je vais essayer de le réparer, mais rien n'a à voir avec ma question. Merci encore.

Questions connexes