VFile
Esta clase representa a un fichero binario y disponemos de funciones para consultar sus características, modificarlas así como crear, leer o escribir un fichero binario en disco.
Constructor
Función |
VFile( String szFileName ) |
De información de ficheros
Retorno | Función |
Boolean | |
Number | |
Boolean | |
String | |
Boolean | |
Number | |
Number | |
Number | |
String |
De operaciones sobre el fichero
Retorno | Función |
void | |
Boolean | |
Boolean | |
Boolean | |
Boolean | |
Boolean | |
Boolean | |
Boolean | |
Boolean | |
Boolean | |
void |
Para el buffer del fichero
Retorno | Función |
Number | |
Number | |
Number | |
void | |
void | |
Number |
Para VByteArray
Retorno | Función |
Number |
Errores de fichero
- ErrorNone = 00 Ok, no se ha producido ningún error
- ErrorRead = 01 Se ha producido un error al leer del fichero
- ErrorWrite = 02 Se ha producido un error al escribir en el fichero
- ErrorFatal = 03 Se ha producido un error fatal
- ErrorResource = 04 Se ha producido un error en el recurso
- ErrorOpen = 05 No ha sido posible abrir el fichero
- ErrorAbort = 06 Se ha abortado la operación sobre el fichero
- ErrorTimeOut = 07 Se ha producido un error de timeout
- ErrorUnspecified = 08 Se ha producido un error no especificado
- ErrorRemove = 09 No ha sido posible eliminar el fichero
- ErrorRename = 10 No ha sido posible renombrar el fichero
- ErrorPosition = 11 La posición del fichero no puede ser modificada
- ErrorResize = 12 No es posible redimensionar el fichero
- ErrorPermissions = 13 No tiene permisos de acceso al fichero
- ErrorCopy = 14 No se podido copiar el fichero
Flags de modos de apertura del fichero
- OpenModeNotOpen = 0x0000 No está abierto
- OpenModeReadOnly = 0x0001 Abierto para lectura
- OpenModeWriteOnly = 0x0002 Abierto para escritura
- OpenModeReadWrite = OpenModeReadOnly | OpenModeWriteOnly Abierto para lectura/escritura
- OpenModeAppend = 0x0004 Abierto para escribir al final del fichero, sin borrar el contenido existente
- OpenModeTruncate = 0x0008 Abierto para escritura truncando si no existe,si existe borra contenido antes de escribir
- OpenModeText = 0x0010 Se abre en modo texto. Al leer el fin de línea se convierte al carácter "\n"
- OpenModeUnbuffered = 0x0020 No se utiliza buffer para el fichero
Flags de permisos del fichero
- PermissionReadOwner = 0x4000 El propietario puede leer el fichero
- PermissionWriteOwner = 0x2000 El propietario puede escribir en el fichero
- PermissionExeOwner = 0x1000 El propietario puede ejecutar el fichero
- PermissionReadUser = 0x0400 El usuario puede leer el fichero
- PermissionWriteUser = 0x0200 El usuario puede escribir en el fichero
- PermissionExeUser = 0x0100 El usuario puede ejecutar el fichero
- PermissionReadGroup = 0x0040 El grupo de usuarios puede leer el fichero
- PermissionWriteGroup = 0x0020 El grupo de usuarios puede escribir en el fichero
- PermissionExeGroup = 0x0010 El grupo de usuarios puede ejecutar el fichero
- PermissionReadOther = 0x0004 Todos pueden leer el fichero
- PermissionWriteOther = 0x0002 Todos pueden escribir en el fichero
- PermissionExeOther = 0x0001 Todos pueden ejecutar el fichero
Constructor. Crea una instancia de objeto de la clase VFile.
Parámetros:
- szFileName: string que indica el nombre o senda del fichero.
Devuelve true si el fin de fichero ya ha sido leído.
Devuelve el código de estado del fichero.
Ver enum de errores de fichero.
Devuelve true si el fichero existe.
Devuelve el nombre del fichero.
Devuelve true si el fichero sólo puede ser manipulado secuencialmente.
Devuelve el valor de los permisos del fichero.
El valor devuelto es la suma (OR) de los valores de los permisos. Ver enum flags de permisos del fichero. Los valores con combinables mediante el uso del operador bitwise or booleano "|".
Devuelve la posición en curso del fichero. Se corresponde con la posición del último dato escrito o leído.
Si el fichero está cerrado o es secuencial devuelve cero.
Devuelve el tamaño del fichero.
Devuelve la senda absoluta del fichero o directorio del enlace simbólico o acceso directo.
Devuelve una cadena vacía si el fichero no es un enlace simbólico o acceso directo.
Cierra el fichero.
Antes de cerrarlo ejecuta flush().
Hace una copia del fichero en curso con otro nombre o path.
Devuelve true si la copia ha podido realizarse con éxito.
Parámetros:
- szNewName: string que indica la senda donde se almacenará la copia del fichero
Guarda en disco los buffers de datos del fichero.
Devuelve true si ha podido realizarse con éxito.
Crear un acceso directo (Windows) o enlace simbólico (Unix).
Devuelve true si se creado con éxito.
Parámetros:
- szLinkName: string que indica el nombre o senda completa del enlace
Abre el fichero. Devuelve true si ha podido abrirlo.
Abre el fichero con los modos especificados. Los modos de apertura son combinables. Se pueden especificar varios separados por "|".
Parámetros:
- nMode: number que indica el modo de apertura. Ver enum de flags de modos de apertura del fichero. Los valores con combinables mediante el uso del operador bitwise or booleano "|".
Elimina el fichero en curso.
Devuelve true si se ha eliminado correctamente.
Renombra el fichero en curso.
Devuelve true si ha podido renombrarse correctamente. Si el fichero con el nombre szNewName ya existe devuelve false.
Parámetros:
- szNewName: string que indica el nombre o senda nueva para el fichero.
Cambia el tamaño del fichero.
Devuelve true si ha podido realizarse correctamente.
Parámetros:
- nSize: number que indica el número de bytes del nuevo tamaño del fichero
Fija la posición en curso del fichero.
Devuelve true si se ha posicionado correctamente. Para fichero secuenciales devuelve el valor false.
Si la posición es posterior al fin de fichero, el fichero no se extiende, si se escribe en esa posición sí se extiende el fichero.
Parámetros:
- nOffset: number que indica el número en bytes que representa la nueva posición del fichero.
Fija los permisos del fichero. Se pueden especificar múltiples permisos de forma combinada, separados por "|". Devuelve true si la asignación de permisos ha finalizado correctamente.
Parámetros:
- nPermissions: number que indica los permisos. Ver enum flags de permisos del fichero. Los valores con combinables mediante el uso del operador bitwise or booleano "|".
Fija el estado del fichero al valor "ErrorNone" (sin errores).
Se usa para leer byte a byte el buffer.
Devuelve el valor del byte (valor entre 0 y 255) de la posición del buffer seleccionada.
Parámetros:
- index: number que indica la posición del buffer.
Fija el tamaño del buffer en bytes.
Parámetros:
- nSize: número que indica el tamaño del buffer en bytes.
Devuelve el número de bytes leídos que será el tamaño del buffer o menos.
Si el fichero está posicionado al final devolverá 0.
Escribir byte a byte en el buffer.
Parámetros:
- nIndex: número que indica la posición del buffer en la que se escribirá.
- nValue: número con valor de 0 a 255 que se escribirá en la posición del buffer.
Fija el tamaño del buffer en bytes
Parámetros:
- nSize: número que indica el tamaño del buffer en bytes
Graba el buffer en el disco.
Parámetros:
- nBytes: número que indica el número de bytes del buffer a escribir. Es opcional, si no se especifica asume el tamaño del buffer.
Retorna, como máximo el número de bytes especificados, en un objeto de la clase VByteArray. En caso de que el tamaño máximo especificado sea mayor que el tamaño del fichero, devolverá el contenido del fichero.
Parámetros:
Retorna el contenido de una línea del fichero. Si se especifica un tamaño máximo, nos devolverá ese número de bytes de la línea o en caso de ser menor el contenido de la línea.
Parámetros:
- nMaxSize: tamaño máximo de bytes que deseamos leer de la línea para añadir al VByteArray. 0 = devolver toda la línea.
Parámetros:
- nBytes: número que indica el número de bytes del buffer a escribir. Es opcional, si no se especifica asume el tamaño del buffer.
////////////////////////////////////////////////////////////
// Ejemplo de creación de un fichero de texto
// Para usar las funciones de la clase VFile primero hay que importarla
importClass( "VFile" );
// Se declara el objeto fichero
var fi = new VFile( "/buffer.txt" );
// Se abre el fichero de escritura (si no existe se crea y si existe se limpia)
if ( fi.open( VFile.OpenModeWriteOnly | VFile.OpenModeTruncate) )
{
// Se llena el buffer con las 26 letras del abecedario
for( var x=0; x < 26; ++x )
{
fi.setBufferAt( x, 65+x );
}
// Se graba el buffer
fi.writeBuffer( 26 );
// Se cierra el fichero
fi.close();
}
else
// Si no ha sido posible abrir el fichero se muestra error
alert( "No se pudo abrir el fichero " + fi.fileName(), "Error" );
////////////////////////////////////////////////////////////
// Ejemplo de lectura de un fichero binario
// Para usar las funciones de la clase VFile primero hay que importarla
importClass( "VFile" );
// Se declara el objeto fichero
var fi = new VFile( "c:/fichero.exe" );
// Se abre el fichero en modo sólo lectura
if ( fi.open( VFile.OpenModeReadOnly ) )
{
// Se lee el fichero buffer a buffer
var contenido = "";
var numBytesLeidos = fi.readBuffer();
// Cada buffer se procesa byte a byte
while ( numBytesLeidos != 0 )
{
for( var pos = 0; pos < numBytesLeidos; pos += 1 )
{
contenido += String.fromCharCode( fi.bufferAt( pos ) );
}
numBytesLeidos = fi.readBuffer();
}
// Se cierra el fichero
fi.close();
// Mostrar la cadena leída
alert( contenido );
}
else
{
// Si no ha sido posible abrir el fichero se muestra error
alert( "No se pudo abrir el fichero " + fi.fileName(), "Error" );
}
Última actualización 3yr ago