Club Builder - Foros de discusión Club Builder
Foro de C++Builder en español
 
 FAQFAQ   BuscarBuscar   MiembrosMiembros   Grupos de UsuariosGrupos de Usuarios   RegistrarseRegistrarse 
 PerfilPerfil   Entra para ver tus mensajes privadosEntra para ver tus mensajes privados   EntrarEntrar 

Byte de copia o modificación

 
Publicar nuevo tema   Responder al tema    Foros de discusión -> Consultas
Ver tema anterior :: Ver tema siguiente  
Autor Mensaje
Mensaje    Asunto: Byte de copia o modificación Responder citando

¿alguien sabe algo al respecto?

Acabo de descubrir que los archivos tienen un byte denominado de modificación, el cual sirve para conocer si el archivo está modificado.

Su uso es muy sencillo. Si se ha modificado se pone a 1.

El tema es que en las copias de seguridad, en el momento de hacerlas, se pondría el byte a 0, con lo que resulta muy sencillo comprobar si es necesario realizar de nuevo una copia del archivo, sin comparar fechas ni códigos hash.

Saludos
Volver arriba
Ver perfil de usuario Enviar mensaje privado Dirección AIM
Mensaje    Asunto: Responder citando

Hola,

Mira la sentencia FindFirst, te devuelve un estructura con los atributos del fichero.

Ejemplo.
Código:


  TSearchRec sr;

  int iConta=0; // contador ficheros txt

  if (FindFirst("C:\windows\*.txt", faArchive, sr) == 0)
  {
    do
    {
      if ((sr.Attr & faArchive) == faArchive)
                 iConta++;
    } while (FindNext(sr) == 0);
    FindClose(sr);
  }



Te recomiendo que mires la ayuda de la sentencia FirdFirst.!!
con los parametros que conlleva, asi como la estructura sr.
_________________
Saludos
~~~~~~~~
Wink _Willa
~~~~~~~~
www.avancegame.com
Volver arriba
Ver perfil de usuario Enviar mensaje privado Visitar sitio web del autor
Mensaje    Asunto: Responder citando

Hola,

Ya sé que esta entrada es muy antigua, pero hasta hoy no había necesitado usar esta propiedad de los archivos.

Me temo que con la estructura TSearchRec da los atributos del tipo de archivo, pero no el estado de estos.

Solo por si alguien lo necesita hay que usar la función API GetFileAttributesW(const wchar_t*)

un ejemplo podría ser

Código:
DWORD Attributes;
Attributes = GetFileAttributesW(sr.Name.w_str());


donde sr.Name si que viene de una búsqueda con TSearchRec

los valores de Attributes, copiados de msdn (en el caso de byte de control de copias activado el resultado es 32)

FILE_ATTRIBUTE_ARCHIVE
32 (0x20)
A file or directory that is an archive file or directory. Applications typically use this attribute to mark files for backup or removal .
FILE_ATTRIBUTE_COMPRESSED
2048 (0x800)
A file or directory that is compressed. For a file, all of the data in the file is compressed. For a directory, compression is the default for newly created files and subdirectories.
FILE_ATTRIBUTE_DEVICE
64 (0x40)
This value is reserved for system use.
FILE_ATTRIBUTE_DIRECTORY
16 (0x10)
The handle that identifies a directory.
FILE_ATTRIBUTE_ENCRYPTED
16384 (0x4000)
A file or directory that is encrypted. For a file, all data streams in the file are encrypted. For a directory, encryption is the default for newly created files and subdirectories.
FILE_ATTRIBUTE_HIDDEN
2 (0x2)
The file or directory is hidden. It is not included in an ordinary directory listing.
FILE_ATTRIBUTE_INTEGRITY_STREAM
32768 (0x8000)
The directory or user data stream is configured with integrity (only supported on ReFS volumes). It is not included in an ordinary directory listing. The integrity setting persists with the file if it's renamed. If a file is copied the destination file will have integrity set if either the source file or destination directory have integrity set.
Windows Server 2008 R2, Windows 7, Windows Server 2008, Windows Vista, Windows Server 2003, and Windows XP: This flag is not supported until Windows Server 2012.
FILE_ATTRIBUTE_NORMAL
128 (0x80)
A file that does not have other attributes set. This attribute is valid only when used alone.
FILE_ATTRIBUTE_NOT_CONTENT_INDEXED
8192 (0x2000)
The file or directory is not to be indexed by the content indexing service.
FILE_ATTRIBUTE_NO_SCRUB_DATA
131072 (0x20000)
The user data stream not to be read by the background data integrity scanner (AKA scrubber). When set on a directory it only provides inheritance. This flag is only supported on Storage Spaces and ReFS volumes. It is not included in an ordinary directory listing.
Windows Server 2008 R2, Windows 7, Windows Server 2008, Windows Vista, Windows Server 2003, and Windows XP: This flag is not supported until Windows 8 and Windows Server 2012.
FILE_ATTRIBUTE_OFFLINE
4096 (0x1000)
The data of a file is not available immediately. This attribute indicates that the file data is physically moved to offline storage. This attribute is used by Remote Storage, which is the hierarchical storage management software. Applications should not arbitrarily change this attribute.
FILE_ATTRIBUTE_READONLY
1 (0x1)
A file that is read-only. Applications can read the file, but cannot write to it or delete it. This attribute is not honored on directories. For more information, see You cannot view or change the Read-only or the System attributes of folders in Windows Server 2003, in Windows XP, in Windows Vista or in Windows 7.
FILE_ATTRIBUTE_REPARSE_POINT
1024 (0x400)
A file or directory that has an associated reparse point, or a file that is a symbolic link.
FILE_ATTRIBUTE_SPARSE_FILE
512 (0x200)
A file that is a sparse file.
FILE_ATTRIBUTE_SYSTEM
4 (0x4)
A file or directory that the operating system uses a part of, or uses exclusively.
FILE_ATTRIBUTE_TEMPORARY
256 (0x100)
A file that is being used for temporary storage. File systems avoid writing data back to mass storage if sufficient cache memory is available, because typically, an application deletes a temporary file after the handle is closed. In that scenario, the system can entirely avoid writing the data. Otherwise, the data is written after the handle is closed.
FILE_ATTRIBUTE_VIRTUAL
65536 (0x10000)
Volver arriba
Ver perfil de usuario Enviar mensaje privado Dirección AIM
Mostrar mensajes de anteriores:   
Cambiar a:  
No puedes publicar temas nuevos en este foro
No puedes responder a temas en este foro
No puedes editar tus mensajes en este foro
No puedes borrar tus mensajes en este foro
No puedes votar en las encuestas de este foro


Hosting WordPress Indedmedia desde 3,99 €
© 2002–2026 Club Builder · Funciona con phpBB.