fichero compartido excepcion

03/12/2005 - 21:56 por Antonio José Yuste López | Informe spam
Hola buenas noches, tengo una duda que no consigo solucinar...

Resulta que cuando quiero borrar un archivo o rellenar un treeview con x
archivos, si me encuntro con archivo que esta compartido, que esta cargado
en memoria como es index.dat, el indice de temporales de internet me saca
una excepcion de que el archivo esta cargado y no continua haciendo el resto
del metodo. por ejemplo tengo 10 archivos y quiero borrarlos todos y si
suponiendo que el archivo index.dat ocupa la 5 posicion ... me borra los
cinco primeros pero los 4 siguientes no los borra. ¿Como puedo hacer para
que ese archivo lo ignore y continue borrando el resto?

Gracias y hasta otra.

Preguntas similare

Leer las respuestas

#1 Marino Posadas
03/12/2005 - 22:35 | Informe spam
Hola Antonio

Existen métodos para comprobar si un fichero está compartido, (que puedes
chequear en Internet, si quieres llegar a ese nivel de detalle), pero, lo
más sencillo es poner la instrucción que puede producir el error dentro de
una estructura try-catch, y, o bien avisas en el catch de que eso se ha
producido, o, si no es pertinente, guardas el error o el dato del fichero
que da problemas en una cadena, y al final del proceso notificas el informe
de errores. De esa forma, el proceso continuaría con los siguientes si uno
da error.


Saludos cordiales
Marino Posadas
MVP Visual C#

www.ElAveFenix.net


"Antonio José Yuste López" escribió en el mensaje
news:%23UcI7vE%
Hola buenas noches, tengo una duda que no consigo solucinar...

Resulta que cuando quiero borrar un archivo o rellenar un treeview con x
archivos, si me encuntro con archivo que esta compartido, que esta cargado
en memoria como es index.dat, el indice de temporales de internet me saca
una excepcion de que el archivo esta cargado y no continua haciendo el
resto del metodo. por ejemplo tengo 10 archivos y quiero borrarlos todos y
si suponiendo que el archivo index.dat ocupa la 5 posicion ... me borra
los cinco primeros pero los 4 siguientes no los borra. ¿Como puedo hacer
para que ese archivo lo ignore y continue borrando el resto?

Gracias y hasta otra.

Respuesta Responder a este mensaje
#2 Antonio José Yuste López
04/12/2005 - 00:09 | Informe spam
Gracias por tu respuesta, pero el problema esta en que yo ya uso la
instrucción try-catch y cuando falla pues por ejemplo muestro un mensaje con
el error, pero el proceso no continua, si me faltan 5 archivos por mostrar
ahi se queda y no los muestra.
Gracias otra vez.

"Marino Posadas" escribió en el mensaje
news:%23M9U0FF%
Hola Antonio

Existen métodos para comprobar si un fichero está compartido, (que puedes
chequear en Internet, si quieres llegar a ese nivel de detalle), pero, lo
más sencillo es poner la instrucción que puede producir el error dentro de
una estructura try-catch, y, o bien avisas en el catch de que eso se ha
producido, o, si no es pertinente, guardas el error o el dato del fichero
que da problemas en una cadena, y al final del proceso notificas el
informe de errores. De esa forma, el proceso continuaría con los
siguientes si uno da error.


Saludos cordiales
Marino Posadas
MVP Visual C#

www.ElAveFenix.net


"Antonio José Yuste López" escribió en el mensaje
news:%23UcI7vE%
Hola buenas noches, tengo una duda que no consigo solucinar...

Resulta que cuando quiero borrar un archivo o rellenar un treeview con x
archivos, si me encuntro con archivo que esta compartido, que esta
cargado en memoria como es index.dat, el indice de temporales de internet
me saca una excepcion de que el archivo esta cargado y no continua
haciendo el resto del metodo. por ejemplo tengo 10 archivos y quiero
borrarlos todos y si suponiendo que el archivo index.dat ocupa la 5
posicion ... me borra los cinco primeros pero los 4 siguientes no los
borra. ¿Como puedo hacer para que ese archivo lo ignore y continue
borrando el resto?

Gracias y hasta otra.





Respuesta Responder a este mensaje
#3 Rafael Cano
04/12/2005 - 10:00 | Informe spam
Hola Antonio, supongo que eso te pasará porque el try ... catch está
fuera del bucle que utilices para mostrar los archivos, lo que debes de
hacer es tener para ese bucle que recorre los archivos, un try ... catch
que controle la excepción (los try ... catch pueden estar anidados),
para que cuando salté el catch, la siguiente instrucción a ejecutar
estén dentro del bucle.

Ej:

for each cFichero in colFicheros
{
try
{
// Manejo de los fcihero
...

}
catch ...
{
// Control de errores que dan con los ficheros
}
finally
{
...
}
// como estamos dentro del bucle segimos con el siguiente fichero.
}

Salu2 Rafael Cano

Jaén - España


Antonio José Yuste López wrote:
Gracias por tu respuesta, pero el problema esta en que yo ya uso la
instrucción try-catch y cuando falla pues por ejemplo muestro un mensaje con
el error, pero el proceso no continua, si me faltan 5 archivos por mostrar
ahi se queda y no los muestra.
Gracias otra vez.

"Marino Posadas" escribió en el mensaje
news:%23M9U0FF%
Hola Antonio

Existen métodos para comprobar si un fichero está compartido, (que puedes
chequear en Internet, si quieres llegar a ese nivel de detalle), pero, lo
más sencillo es poner la instrucción que puede producir el error dentro de
una estructura try-catch, y, o bien avisas en el catch de que eso se ha
producido, o, si no es pertinente, guardas el error o el dato del fichero
que da problemas en una cadena, y al final del proceso notificas el
informe de errores. De esa forma, el proceso continuaría con los
siguientes si uno da error.


Saludos cordiales
Marino Posadas
MVP Visual C#

www.ElAveFenix.net


"Antonio José Yuste López" escribió en el mensaje
news:%23UcI7vE%
Hola buenas noches, tengo una duda que no consigo solucinar...

Resulta que cuando quiero borrar un archivo o rellenar un treeview con x
archivos, si me encuntro con archivo que esta compartido, que esta
cargado en memoria como es index.dat, el indice de temporales de internet
me saca una excepcion de que el archivo esta cargado y no continua
haciendo el resto del metodo. por ejemplo tengo 10 archivos y quiero
borrarlos todos y si suponiendo que el archivo index.dat ocupa la 5
posicion ... me borra los cinco primeros pero los 4 siguientes no los
borra. ¿Como puedo hacer para que ese archivo lo ignore y continue
borrando el resto?

Gracias y hasta otra.








Respuesta Responder a este mensaje
#4 Antonio José Yuste López
04/12/2005 - 16:19 | Informe spam
Gracias a todos, era por no meter el try dentro del bucle yo lo hacia desde
el principio de la funcion hasta el final y dentro del foreach que hago no
habia puesto otro try.
Gracias y hasta otra.

"Rafael Cano" escribió en el mensaje
news:eRxC4EL%
Hola Antonio, supongo que eso te pasará porque el try ... catch está fuera
del bucle que utilices para mostrar los archivos, lo que debes de hacer es
tener para ese bucle que recorre los archivos, un try ... catch que
controle la excepción (los try ... catch pueden estar anidados), para que
cuando salté el catch, la siguiente instrucción a ejecutar estén dentro
del bucle.

Ej:

for each cFichero in colFicheros
{
try
{
// Manejo de los fcihero
...

}
catch ...
{
// Control de errores que dan con los ficheros
}
finally
{
...
}
// como estamos dentro del bucle segimos con el siguiente fichero.
}

Salu2 Rafael Cano

Jaén - España


Antonio José Yuste López wrote:
Gracias por tu respuesta, pero el problema esta en que yo ya uso la
instrucción try-catch y cuando falla pues por ejemplo muestro un mensaje
con el error, pero el proceso no continua, si me faltan 5 archivos por
mostrar ahi se queda y no los muestra.
Gracias otra vez.

"Marino Posadas" escribió en el mensaje
news:%23M9U0FF%
Hola Antonio

Existen métodos para comprobar si un fichero está compartido, (que
puedes chequear en Internet, si quieres llegar a ese nivel de detalle),
pero, lo más sencillo es poner la instrucción que puede producir el
error dentro de una estructura try-catch, y, o bien avisas en el catch
de que eso se ha producido, o, si no es pertinente, guardas el error o
el dato del fichero que da problemas en una cadena, y al final del
proceso notificas el informe de errores. De esa forma, el proceso
continuaría con los siguientes si uno da error.


Saludos cordiales
Marino Posadas
MVP Visual C#

www.ElAveFenix.net


"Antonio José Yuste López" escribió en el
mensaje news:%23UcI7vE%
Hola buenas noches, tengo una duda que no consigo solucinar...

Resulta que cuando quiero borrar un archivo o rellenar un treeview con
x archivos, si me encuntro con archivo que esta compartido, que esta
cargado en memoria como es index.dat, el indice de temporales de
internet me saca una excepcion de que el archivo esta cargado y no
continua haciendo el resto del metodo. por ejemplo tengo 10 archivos y
quiero borrarlos todos y si suponiendo que el archivo index.dat ocupa
la 5 posicion ... me borra los cinco primeros pero los 4 siguientes no
los borra. ¿Como puedo hacer para que ese archivo lo ignore y continue
borrando el resto?

Gracias y hasta otra.







Respuesta Responder a este mensaje
#5 Hadi Hariri
04/12/2005 - 21:55 | Informe spam
Antonio José Yuste López wrote:

Gracias a todos, era por no meter el try dentro del bucle yo lo hacia
desde el principio de la funcion hasta el final y dentro del foreach
que hago no habia puesto otro try.
Gracias y hasta otra.



De todas formas, poner un try..catch en un bucle es costoso. Sería
mejor lo que propone Marino de comprobar si el fichero esta en uso.

Hadi Hariri
¿Eres un desarrollador y te encuentras en Andalucía? Escríbeme a lists
arroba hadihariri punto com
http://www.hadihariri.com
Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaSiguiente Respuesta Tengo una respuesta
Search Busqueda sugerida