La función CreateFile() es una función de la biblioteca de Windows que se utiliza para crear o abrir un archivo, dispositivo o canal de comunicación. Esta función permite a los desarrolladores controlar el acceso al archivo, así como especificar las características de acceso y compartición del mismo.
Sintaxis de la función CreateFile()
HANDLE CreateFile( LPCTSTR lpFileName, DWORD dwDesiredAccess, DWORD dwShareMode, LPSECURITY_ATTRIBUTES lpSecurityAttributes, DWORD dwCreationDisposition, DWORD dwFlagsAndAttributes, HANDLE hTemplateFile );
Parámetros de la función CreateFile()
- lpFileName: Nombre del archivo o dispositivo a crear o abrir.
- dwDesiredAccess: Especifica el tipo de acceso al archivo, puede ser de lectura, escritura o lectura/escritura.
- dwShareMode: Especifica el modo de compartición del archivo, puede ser compartido para lectura, escritura o lectura/escritura.
- lpSecurityAttributes: Puntero a una estructura SECURITY_ATTRIBUTES que especifica las características de seguridad del archivo.
- dwCreationDisposition: Especifica cómo se debe abrir el archivo, puede ser para crear un nuevo archivo, abrir un archivo existente o reemplazar un archivo existente.
- dwFlagsAndAttributes: Especifica las características adicionales del archivo, como por ejemplo si es solo para archivo temporal.
- hTemplateFile: Handle a un archivo que se utiliza como plantilla para la creación del nuevo archivo.
Un ejemplo de cómo se utiliza la función CreateFile() para crear un archivo de texto es el siguiente:
var
hFile: THandle;
begin
hFile := CreateFile('example.txt', GENERIC_WRITE, FILE_SHARE_READ, nil,
CREATE_ALWAYS, FILE_ATTRIBUTE_NORMAL, 0);
if hFile = INVALID_HANDLE_VALUE then
ShowMessage('Error al crear el archivo')
else
begin
// Escribir contenido en el archivo
// Cerrar el archivo
CloseHandle(hFile);
end;
end;
En este ejemplo, se crea un archivo de texto llamado “example.txt” con el modo de acceso CREATE_ALWAYS.
Esto significa que si el archivo ya existe, se sobreescribirá su contenido. Luego, se utiliza la función WriteFile() para escribir el texto “Hello World” en el archivo. Finalmente, se utiliza la función CloseHandle() para cerrar el archivo.