Ver Mensaje Individual
  #7  
Antiguo 14-09-2005
Avatar de dec
dec dec is offline
Moderador
 
Registrado: dic 2004
Ubicación: Alcobendas, Madrid, España
Posts: 13.107
Reputación: 34
dec Tiene un aura espectaculardec Tiene un aura espectacular
Hola,

Cita:
Empezado por JuanErasmo
Dec el archivo me desapareció de C:\\archivo.txt.
A ver, ese archivo era un ejemplo, evidentemente, debes sustituir ese archivo por el que precises. Respecto de lo de que te "desapareció" el archivo... probando la primera de las funciones que te comenté sobre un archivo este no desaparece, sino que se le cambia el atributo de "solo lectura", tal como se espera. Y con la segunda "forma de hacerlo" pasa igual: no desaparece el archivo y sí pasa a tener el atributo de "solo lectura". Vamos, que lo he probado y no va mal

Cita:
Empezado por JuanErasmo
(...) yo necesito que se vea pero que cuando se le dé guardar despues de modificarlo, saque un error.
Ya digo que una cosa es ocultar un archivo y otra cambiarle el atributo de "solo lectura": en realidad si quieres ocultar el archivo se trata de cambiar otro atributo del mismo. Si para hacerlo de "solo lectura" hay que utilizar la constante "faReadOnly", para "ocultarlo" hay que utilizar la constante "faHidden".

Ahora bien, ¿qué se trata de conseguir? En un editor que traigo entre manos, por ejemplo, si tratas de abrir un archivo cuyo atributo de "solo lectura" esté activado, el programa te preguntará si quieres quitar dicho atributo del archivo: si lo quitas, te dejará editar el archivo, y, si no lo haces, no te dejará editarlo: respetando así el atributo de "solo lectura" del archivo en cuestión. Ahora, ¿es a algo así a lo que te refieres?

Quiere decirse que tú puedes comprobar (ver más abajo) desde tu programa si un archivo tiene el atributo de "solo lectura" y actuar luego en consecuencia como tuvieras pensado. Otra cosa sería que el propio Windows respetase los atributos de los archivos, pero, si no me equivoco, esto no es muy así.

Código:
  // C++ Builder
 Cardinal atributos = GetFileAttributesA("C:\\archivo.txt");
 if (atributos && faReadOnly == faReadOnly)
 {
   // El archivo tiene el atributo de "solo lectura"
 }
__________________
David Esperalta
www.decsoftutils.com
Responder Con Cita