2009-08-29 47 views
14

Hola, esta va a ser una de esas preguntas tontas. Estoy tratando de recoger un archivo en mi sistema local y sigo obteniendo un FileNotFoundException lanzado.Archivo no encontrado Excepción .. Pero está allí

Alguien me puso recta favor :)

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

intentado mover el archivo en la misma ubicación que la aplicación que se ejecuta e hizo lo siguiente:

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

misma cosa.

Entonces hice un archivo txt azar y lo aparcó allí también .. "me.txt"

y funciona ?! Entonces, ¿cree que el nombre del archivo es el problema?

+0

Si escribe "C: \ logs \ hw-healthways-prod_2009-08-26.tar" en el cuadro Inicio-> Ejecutar, ¿qué ocurre? –

+0

¿Qué error obtienes si intentas abrir explícitamente el archivo con File.OpenRead (...)? también probablemente no es el caso, pero creo que si este es un directorio y no un archivo, File.Exists devolverá false –

+0

Haha No lo encuentra ... pero estoy friggen copiando el nombre y la ubicación de la propiedad del archivo. No sé qué pasa. – Nick

Respuesta

11

Prueba a hacer Directory.GetFiles(@"C:\logs"). Es posible que el archivo en cuestión tenga caracteres extraños que sean interpretados de una manera por Windows Explorer (¿supuestamente de donde está leyendo "la propiedad del archivo"?), Pero de una manera diferente por .NET Framework. Esto puede suceder si tiene caracteres UTF-8 en el nombre de archivo (¿quizás en un tablero?).

+0

Cambiar el nombre del archivo parece ser el boleto. Estoy investigando eso. Gracias – Nick

+3

+1 Como este problema me dejó perplejo durante unas horas. Como había creado los archivos en el Explorador de Windows con la opción de ocultar las extensiones de nombre de archivo, mi archivo se llamaba realmente "archivo1.html.txt" y no "archivo1.html" como lo pretendía. – Remotec

0

Es posible que desee comprobar los permisos de sus archivos. Es posible que su computadora no tenga permiso para el archivo.

+0

Hmm .. No lo creo. Puedo abrirlo manualmente – Nick

-6

C: \ logs \ hw-healthways-prod_2009-08-26.tar debería ser C: \\ logs \\ hw-healthways-prod_2009-08-26.tar. \ significa que el siguiente personaje es un personaje de escape.

+7

No cuando la cadena tiene como prefijo el carácter @. –

7

puede ser el nombre del archivo es "HW-Healthways-prod_2009-08-26 .tar.tar" en lugar de "HW-Healthways-prod_2009-08-26 .tar", que tenían esta problema porque de forma predeterminada los archivos de extensión están ocultos en Windows

Cuestiones relacionadas