FileStream: error con nombres de archivo con acentos

02/02/2004 - 18:35 por santi | Informe spam
Hola a todos,

FileStream input = new FileStream(fileName,FileMode.Open);

Cuando intenta abrir un archivo con acentos en el nombre me da un error.
Creo que tiene algo que ver con cambiar la cultura con la que compila
¿alguna idea?

gracias!

Preguntas similare

Leer las respuestas

#1 Juan Carlos Restrepo M.
03/02/2004 - 04:42 | Informe spam
Y cual es el error exactamente?
"santi" escribió en el mensaje
news:bvm1k6$rbg$
Hola a todos,

FileStream input = new FileStream(fileName,FileMode.Open);

Cuando intenta abrir un archivo con acentos en el nombre me da un error.
Creo que tiene algo que ver con cambiar la cultura con la que compila
¿alguna idea?

gracias!


Respuesta Responder a este mensaje
#2 santi
03/02/2004 - 09:28 | Informe spam
Hola, el error es un System.IO.IOException, si intenta abrir por ejemplo
"leño.jpg", el error es "Can't open le?o.jpg", o sea que sustituye los
caracteres que no son propios del inglés por una interrogación.

En la documentación de la clase FileStream dice:
CAUTION When you compile a set of characters with a particular cultural
setting and retrieve those same characters with a different cultural
setting, the characters may not be interpretable, and could cause an
exception to be thrown.

Yo tengo instalado el ingles creo pero no se como se instala ni se cambia
la cultura de la compilación.
Respuesta Responder a este mensaje
#3 David caso
03/02/2004 - 15:26 | Informe spam
buenas:

no me ha pasado lo que comentas, pero puedes probar con el GetEncoding,
en la pagina de MS hay informacion, necesitas los codigos para el
GetEncoding, y ver si por ahi te van los tiros.

Aqui tienes un enlace:
http://msdn.microsoft.com/library/d...topic1.asp

Ya nos comentaras, como te va la cosa.

un saludin
Respuesta Responder a este mensaje
#4 santi
03/02/2004 - 16:10 | Informe spam
Gracias por tu respuesta David, he estado echandole un vistazo, pero no veo
como puedo codificarlo. He llegado a tener un
System.Text.Encoding.ASCII.GetEncoder() pero no tiene ningun método tipo
Encode()



"David caso" wrote in message
news:
buenas:

no me ha pasado lo que comentas, pero puedes probar con el GetEncoding,
en la pagina de MS hay informacion, necesitas los codigos para el
GetEncoding, y ver si por ahi te van los tiros.

Aqui tienes un enlace:



http://msdn.microsoft.com/library/d...pref/html/
frlrfsystemtextencodingclassgetencodingtopic1.asp

Ya nos comentaras, como te va la cosa.

un saludin
Respuesta Responder a este mensaje
#5 Pedro Luna Montalvo
03/02/2004 - 19:43 | Informe spam
Saludos:

La codificacion que mencionas se refiere al contenido del archivo, no al
nombre.

Es raro pues no logro replicar el problema que tienes.

Te sugiero lo siguiente:

1. Verifica que el problema es realmente por caracteres especiales (copia el
archivo y ponle un nombre como: leno.jpg y pruebalo).

2. Verifica que el problema no se debe a que alguien mas esta bloqueando el
archivo (copia el archivo a otra carpeta, c:\temp\leño.jpg, e intenta
abrirlo desde ahi.)

3. Agrega el marcador Unicode al inicio del nombre del archivo en el codigo
C#, es decir:
FileStream input = new FileStream(@"leño.jpg", FileMode.Open);

4. Vete a confesar, escucha misa el domingo y cuando regreses a tu casa,
selecciona Regenerar la solucion.

Saludos y si encuentras la causa, nos avisas

Pedro
email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaRespuesta Tengo una respuesta
Search Busqueda sugerida