Je suis tout à fait d'être confondu ici les gens,File.Exists() retourne false, mais pas dans debug
Mon code lance une exception parce que File.Exists() retourne false
public override sealed TCargo ReadFile(string fileName)
{
if (!File.Exists(fileName))
{
throw new ArgumentException("Provided file name does not exist", "fileName");
}
Visual Studio casse à l'instruction throw, et je vérifie immédiatement la valeur de File.Exists(fileName)
dans la fenêtre immédiate. Il renvoie true
. Lorsque je ramène le point d'arrêt à l'instruction if et l'exécute à nouveau, il relance. FileName est un chemin absolu vers un fichier.
Je ne crée pas le fichier, je n'écris pas dessus (c'est toujours là). Si je colle le chemin dans la boîte de dialogue ouverte dans le Bloc-notes, il lit le fichier sans problèmes.
Le code s'exécute dans un worker d'arrière-plan. C'est le seul facteur de complication auquel je puisse penser. Je suis certain que le fichier n'a pas encore été ouvert, que ce soit dans le thread de travail ou ailleurs.
Que se passe-t-il ici?
Quel est le chemin? – SLaks
Est juste le 'Fichier.Existe (fileName) 'partie retournant true ou toute l'instruction'! File.Exists (fileName) 'retournant true? – animuson
Et si vous l'exécutez sans le processus de travail en arrière-plan - en supposant qu'il ne soit pas lié au fichier comme vous l'avez dit, comment se comporte-t-il? –