Red de conocimiento informático - Material del sitio web - ¿Cómo obtener por lotes los atributos de los archivos en una carpeta y almacenarlos en la base de datos?

¿Cómo obtener por lotes los atributos de los archivos en una carpeta y almacenarlos en la base de datos?

Al utilizar la programación Visual C, hay varias formas de realizar operaciones con archivos:

(1) Utilice funciones estándar de la biblioteca de tiempo de ejecución de C, incluidas fopen, fclose, fseek, etc.

(2) Utilice funciones de operación de archivos y directorios en Win16, como lopen, lclose, lseek, etc. Sin embargo, en Win32, estas funciones son principalmente para compatibilidad con versiones anteriores de Win16.

(3) Utilice funciones de operación de archivos y directorios en Win32, como CreateFile, CopyFile, DeleteFile, FindNextFile, etc.

En Win32, CreateFile abre y crea archivos. Si la creación se realiza correctamente, se obtendrá un identificador de Win32, que es diferente del identificador devuelto por fopen en el lenguaje "C". En Win16, este identificador es compatible con las funciones de manipulación de archivos de la biblioteca C. Pero en Win32, la función de operación de archivo "C" no puede usar este identificador. Si es necesario, puede usar la función _open_osfhandle para obtener un archivo que la función de archivo "C" puede usar desde el identificador de Win32.

Cerrar. el identificador del archivo.

Para cerrar un archivo, utilice CloseHandle de Win32.

En Win32, CreateFile puede operar objetos distintos de archivos de disco, incluidos puertos de comunicación, tuberías, entradas de consola, ranuras de correo y otros archivos de dispositivos.

(4) Utilice CFile y sus clases derivadas para operaciones de archivos. CFile se deriva de CObject y sus clases derivadas incluyen CStdioFile para archivos de texto y CmemFile para archivos de memoria.

CFile se basa en el sistema de procesamiento de archivos Win32, que encapsula algunas funciones de procesamiento de archivos Win32.

Es mejor utilizar objetos de la clase CFile (o clases derivadas) para manipular archivos y, si es necesario, derivar sus propias clases de manipulación de archivos a partir de estas clases. Se logra una buena portabilidad utilizando consistentemente la interfaz de CFile.

Clases de archivos de MFC

MFC utiliza una serie de clases para encapsular la API de Win32 para el acceso a archivos. Sobre la base de CFile, existen muchas clases derivadas de CFile, como CStdioFile, CMemFile, CMiororFile utilizadas internamente por MFC, etc.

Estructura de CFile

Tipos de enumeración definidos por CFile

La clase CFile define muchos tipos de enumeración relacionados con operaciones de archivos, cuatro de los cuales son OpenFlags, Attribute y SeekPosition. y hFileNull.

OpenFlags

OpenFlags define 13 modos de acceso a archivos y disfrute de archivos:

enum OpenFlags {

//No. bit (comenzando desde la derecha, igual que a continuación) al segundo bit, el modo de acceso al abrir el archivo, lectura/escritura/lectura/escritura

modeRead = 0x0000,

modeWrite = 0x0001,

modeReadWrite = 0x0002,

shareCompat = 0x0000, //No se utiliza en MFC de 32 bits

//Del quinto al séptimo bit, cuando abriendo un archivo, ****modo de disfrute

> shareExclusive = 0x0010, // Modo exclusivo, prohibiendo que otros procesos lean o escriban

shareDenyWrite = 0x0020, // Deshabilitado Otros procesos escribir

shareDenyRead = 0x0030, // prohibir que otros procesos lean

shareDenyNone = 0x0040, // permitir que otros procesos escriban

// Capítulo Ocho bits, el método de herencia de archivos al abrir el archivo

modeNoInherit = 0x0080, //No permitir que los procesos secundarios hereden

// Los bits decimotercero y decimocuarto, si se debe crear un nuevo archivo y cómo crearlo

modeCreate = 0x1000, //crea un nuevo archivo con una longitud de archivo 0

modeNoTruncate = 0x2000, //abre el archivo si ya existe al crear un nuevo archivo

//bits decimoquinto y decimosexto, el archivo se abre en binario o texto, utilizado en la clase derivada CStdioFile

typeText = 0x4000,

typeBinary = (int)0x8000

};

Atributo

El atributo define los atributos del archivo: normal, de solo lectura, implícito, archivo de sistema, archivo o directorio, etc.

atributo de enumeración {

normal = 0x00,

solo lectura = 0x01,

oculto = 0x02,

sistema = 0x04,

volumen = 0x08,

directorio = 0x10,

archivo = 0x20

}

SeekPosition

SeekPosition define tres tipos de posiciones de archivos: cabecera, cola y posición actual:

enum SeekPosition{

comenzar = 0x0,

p>

current = 0x1,

end = 0x2

};

hFileNull

hFileNull define un archivo vacío handle

p>

enum { hFileNull = -1 };

CFile

Además del tipo de enumeración, CFile también define muchas otras variables miembro. Por ejemplo:

UINT m_hFile

Esta variable miembro es una propiedad de acceso público que contiene el identificador de archivo del sistema operativo devuelto por ::CreateFile. MFC sobrecarga el símbolo del operador HFILE para devolver m_hFile, por lo que puede usar un objeto CFile donde usaría una variable de tipo HFILE.

BOOL m_bCloseOnDelete;

CString m_strFileName;

Estas dos variables miembro son propiedades de acceso protegidas. m_bCloseOnDelete se utiliza para indicar si el objeto CFile se elimina cuando se cierra el archivo.

Funciones miembro de CFile

Las funciones miembro de CFile implementan la encapsulación de las funciones de operación de archivos Win32 y pueden completar las siguientes operaciones: abrir, crear y cerrar archivos, posicionamiento del puntero del archivo, archivo bloqueo y desbloqueo, lectura y modificación del estado de archivos, etc. Entre ellas, las funciones que utilizan el identificador de archivo m_hFile son generalmente funciones virtuales, y las funciones no relacionadas con ellas generalmente son funciones miembro estáticas. En términos generales, las funciones miembro se asignan a las funciones Win32 correspondientes, como se muestra en la Tabla 11-1.

Tabla 11-1 Encapsulación de la función CFile de funciones de archivos Win32

Función virtual

Función miembro estática

Función miembro

Funciones correspondientes de Win32

Creación, apertura y cierre de archivos