2009-08-29 24 views
14

Ehi questa sarà una di quelle domande stupide. Sto provando a raccogliere un file sul mio sistema locale e continuo a ricevere un lancio FileNotFoundException.File non trovato Eccezione .. Ma è lì

Qualcuno mi impostato dritto prega :)

if(File.Exists(@"C:\logs\hw-healthways-prod_2009-08-26.tar")) 
{ 
    Console.WriteLine("Yay"); 
} 
else 
{ 
    throw new FileNotFoundException(); 
} 

provato a spostare il file nella stessa posizione in cui l'applicazione di esecuzione e ha fatto la seguente:

if(File.Exists("hw-healthways-prod_2009-08-26.tar")) 

stessa cosa.

poi ho fatto un file txt casuale e parcheggiato lì troppo .. "me.txt"

e funziona ?! Quindi tu il nome del file è il problema?

+0

Se si digita "C: \ logs \ hw-healthways-prod_2009-08-26.tar" nella casella Start-> Esegui, cosa succede? –

+0

quale errore si ottiene se si tenta di aprire esplicitamente il file con File.OpenRead (...)? probabilmente non è il caso, ma penso che se questa è una directory e non un file allora File.Exists restituirà false –

+0

Haha Non lo trova .. ma sto friggen copiando il nome e la posizione dalla proprietà del file. Non so cosa succede – Nick

risposta

11

Provare a fare Directory.GetFiles(@"C:\logs"). È possibile che il file in questione abbia caratteri strani che vengono interpretati in un modo da Esplora risorse (presumibilmente dove stai leggendo "la proprietà del file" da?) Ma in un modo diverso da .NET Framework. Questo può accadere se hai caratteri UTF-8 nel nome del file (forse un trattino?).

+0

Cambiare il nome del file sembra essere il biglietto .. Sto cercando di capire quello. Grazie – Nick

+3

+1 Come questo problema mi ha bloccato per un paio d'ore. Siccome avevo creato i file in Windows Explorer con l'opzione per nascondere le estensioni dei nomi dei file, il mio file era in realtà chiamato "file1.html.txt" e non "file1.html" come avevo previsto. – Remotec

0

È possibile controllare le autorizzazioni del file. Il tuo computer potrebbe non avere il permesso per il file.

+0

Hmm .. Io non la penso così. Posso aprirlo manualmente. – Nick

-6

C: \ logs \ hw-healthways-prod_2009-08-26.tar deve essere C: \\ logs \\ hw-healthways-prod_2009-08-26.tar. \ significa che il prossimo carattere è un personaggio di escape.

+7

Non quando la stringa è preceduta dal carattere @. –

7

può essere il nome del file è "HW-Healthways-prod_2009-08-26 .tar.tar" invece di "HW-Healthways-prod_2009-08-26 .tar", ho avuto questa problema perché di default i file di estensione sono nascosti su windows

Problemi correlati