StreamReader recherche de fichier dans le répertoire incorrect en C #
-
19-09-2019 - |
Question
J'ai un programme où je suis en utilisant le formulaire de fenêtres, sous cette forme que j'utilise OpenFileDialog où ouvrir un fichier dans un répertoire. Puis-je utiliser dans une autre fonction d'un StreamReader et j'ai un 2ème fichier dans mon répertoire grand / debug que je veux StreamReader pour ouvrir. Mais pour une raison quelconque après l'avoir ouvert le 1er fichier avec le OpenFileDialog StreamReader recherche le 2ème fichier dans ce répertoire à la place dans bin / debug comme d'habitude.
Est-ce que quelqu'un sait pourquoi il fait cela et comment puis-je résoudre?
Merci à l'avance,
Greg
La solution
Le OpenFileDialog
a ce comportement; il modifie le répertoire courant de l'application. Pour éviter cela, vous pouvez utiliser le RestoreDirectory
propriété du OpenFileDialog
.
Autres conseils
Lorsque vous modifiez le répertoire dans une boîte de dialogue de fichier ouvert, cela provoque aussi le répertoire de travail de votre demande de changement. Donc, si vous essayez d'utiliser des chemins relatifs, il regardera dans le mauvais endroit.
La solution est RestoreDirectory .
Si vous ne spécifiez pas un chemin de fichier complet, mais seulement un nom de fichier, cela signifie que le fichier est dans le répertoire courant. Lorsque vous utilisez le OpenFileDialog, il change le répertoire courant.
Si vous souhaitez accéder à un fichier quelque part, peu importe ce que le répertoire en cours est réglé sur, vous devez spécifier un chemin complet pour elle. Vous pouvez utiliser Application.StartupPath
pour obtenir le chemin d'accès au dossier dans lequel votre programme est.