StreamReader se plaint que le fichier n'existe pas, mais il ne
J'ai une application qui est localisée pour l'utilisation à l'échelle de l'Europe.
J'ai une option de menu qui charge un fichier à partir du disque.
Cette opération fonctionne très bien sur ma machine de dev mais ne fonctionne pas sur la machine virtuelle que j'ai utiliser pour tester d'autres systèmes d'exploitation _ e.g le français, l'espagnol, etc..
Un FileNotFoundException est généré lorsque le StreamReader essaie d'ouvrir le fichier.
Il dit "impossible de trouver le fichier C:\Program Files\MyCompany\MyTool\bin\Files\debug.txt'"
Truc, c'est que le fichier n'existe pas, au bon endroit et avec le bon nom de fichier.
Les noms de répertoire sur la cible (français) système d'exploitation sont les mêmes que les dev de la machine.
Des idées?
string ourPath = System.IO.Path.GetDirectoryName(System.Diagnostics.Process.GetCurrentProcess().MainModule.FileName);
try
{
System.IO.StreamReader sr = System.IO.File.OpenText(ourPath + @"\bin\Files\debug.txt");
string input = null;
while ((input = sr.ReadLine()) != null)
{
m_text.Append(input);
}
sr.Close();
}
catch (System.IO.FileNotFoundException)
{
MessageBox.Show("LoadDebugOptions: File Not Found: " + ex.Message);
}
OriginalL'auteur Kildareflare | 2010-01-27
Vous devez vous connecter pour publier un commentaire.
Ok trouvé le problème.
Déterminé que le système d'exploitation était de la lecture du fichier affiché dans l'explorateur "debug.txt" "debug.txt.txt".
Cela a été déterminé à l'aide d'un appel Système.IO.Répertoire.GetFiles pour afficher la liste des fichiers dans le répertoire cible.
Si je supprime le .txt extension de l'explorateur windows affiche comme "debug", puis le fichier est trouvé.
S'avère explorer était cacher les extensions de fichiers de types connus sur la machine cible.
Merci. J'ai perdu 3 heures à essayer de trouver le problème!!!!!!
wow heureux d'être de l'aide près de 9 ans plus tard! L'Amour Stackoverflow.
OriginalL'auteur Kildareflare
À assurez-vous que vous êtes dans le bon dossier, regardez
Environment.SpecialFolders
par exemple
Puis aussi vérifier les autorisations sur le fichier spécifique.
OriginalL'auteur ZombieSheep
Je voudrais aussi essayer d'utiliser
avant de l'ouvrir. Et un petit conseil est d'utiliser
Lors de la combinaison des 2 parties du chemin.
Merci Chris, en effet, une vérification peut être nécessaire !
OriginalL'auteur Shimrod
Peut-être que le préfixe est faux:
C:\Program Files
Par exemple, portugais Brésilien installations de Windows ce dossier devient
"C:\Arquivos de Programas\"
; vous devez vous assurer que votre installation de windows n'a pas la même "fonction".Si l'échantillon de code s'exécute à l'intérieur de ce dossier, vous pouvez utiliser un chemin relatif.
Vous pouvez également essayer d'utiliser
ourPath = "%ProgramFiles%\MyCompany\MyTool\
OriginalL'auteur Rubens Farias
Il peut être en raison de l'exception de sécurité de l'utilisateur d'essayer de lire ne dispose pas des autorisations suffisantes. J'ai rencontré de nombreuses fois....
OriginalL'auteur chugh97