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. 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.
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 6mo ago