# VFileInfo

Los objetos de esta clase contienen la información de un fichero de disco. Tiene funciones generales para obtener información de la senda, el fichero y sus permisos además de permitir alterar algunas características del fichero.

## Indice de funciones

### **Del path**

String [absoluteFilePath](#absolutefilepath)()

String [absolutePath](#absolutepath)()

String [baseName](#basename)()

String [bundleName](#bundlename)()

String [canonicalFilePath](#canonicalfilepath)()

String [canonicalPath](#canonicalpath)()

String [completeBaseName](#completebasename)()

String [completeSuffix](#completesuffix)()

String [fileName](#filename)()

String [filePath](#filepath)()

String [group](#group)()

Number [groupId](#groupid)()

### **De información**

Boolean [caching](#caching)()

DateTime [created](#created)()

Boolean [exists](#exists)()

Boolean [isAbsolute](#isabsolute)()

Boolean [isBundle](#isbundle)()

Boolean [isDir](#isdir)()

Boolean [isExecutable](#isexecutable)()

Boolean [isFile](#isfile)()

Boolean [isHidden](#ishidden)()

Boolean [isReadable](#isreadable)()

Boolean [isRelative](#isrelative)()

Boolean [isRoot](#isroot)()

Boolean [isSymLink](#issymlink)()

Boolean [isWritable](#iswritable)()

DateTime [lastModified](#lastmodified)()

DateTime [lastRead](#lastread)()

### **De asignación**

Boolean [makeAbsolute](#makeabsolute)()

String [owner](#owner)()

Number [ownerId](#ownerid)()

String [path](#path)()

Boolean [permission](#permission)( Number permissions )

Number [permissions](#permissions)()

void [refresh](#refresh)()

void [setCaching](#setcaching)( Boolean bEnable )

void [setFile](#setfile)( String szFilePath )

Number [size](#size)()

String [suffix](#suffix)()

String [symLinkTarget](#symlinktarget)()

## Documentación de funciones

### Funciones del path

#### String absoluteFilePath() <a href="#absolutefilepath" id="absolutefilepath"></a>

Devuelve el path absoluto del fichero incluyendo el nombre del fichero.

#### String absolutePath() <a href="#absolutepath" id="absolutepath"></a>

Devuelve el path absoluto del fichero sin incluir el nombre del fichero.

#### String baseName() <a href="#basename" id="basename"></a>

Devuelve el nombre del fichero sin incluir la senda ni la extensión. El nombre son todos los caracteres hasta el primero punto ".". Por ejemplo de "/tmp/archive.tar.gz" devolvería "archive".

#### String bundleName() <a href="#bundlename" id="bundlename"></a>

Devuelve el nombre del enlace al fichero. En Mac OS X devuelve el nombre del enlace, en otras plataformas devuelve una cadena vacía.

#### String canonicalFilePath() <a href="#canonicalfilepath" id="canonicalfilepath"></a>

Devuelve el path de la senda absoluta de un enlace simbólico del fichero incluyendo el nombre. Si el fichero no existe devuelve una cadena vacía.

#### String canonicalPath() <a href="#canonicalpath" id="canonicalpath"></a>

Devuelve el path de la senda absoluta de un enlace simbólico del fichero sin incluir el nombre. Si el fichero no existe devuelve una cadena vacía.

#### String completeBaseName() <a href="#completebasename" id="completebasename"></a>

Devuelve el nombre completo del fichero incluyendo la extensión sin la senda de la senda. Por ejemplo de "/tmp/archive.tar.gz" devolvería "archive.tar".

#### String completeSuffix() <a href="#completesuffix" id="completesuffix"></a>

Devuelve todas las extensiones del fichero. Por ejemplo, de "/tmp/archive.tar.gz" devuelve "tar.gz"

#### String fileName() <a href="#filename" id="filename"></a>

Devuelve el nombre del fichero excluyendo la senda. Por ejemplo, de "/tmp/archive.tar.gz" devuelve "archive.tar.gz".

#### String filePath() <a href="#filepath" id="filepath"></a>

Devuelve el nombre del fichero incluyendo la senda tanto si es absoluta o como relativa.

#### String group() <a href="#group" id="group"></a>

Devuelve el nombre del grupo del fichero.

#### Number groupId() <a href="#groupid" id="groupid"></a>

Devuelve el código (Id) del grupo del fichero. Sólo para sistemas Unix.

### Funciones de información

#### Boolean caching() <a href="#caching" id="caching"></a>

Devuelve true si el cacheado del fichero está habilitado.

#### DateTime created() <a href="#created" id="created"></a>

Devuelve la fecha y hora de creación del fichero. En sistemas Unix esta fecha cambia tanto en la creación como si hay modificación de permisos.

#### Boolean exists() <a href="#exists" id="exists"></a>

Devuelve true si el fichero existe.

#### Boolean isAbsolute() <a href="#isabsolute" id="isabsolute"></a>

Devuelve true si la senda apunta a una senda absoluta.

#### Boolean isBundle() <a href="#isbundle" id="isbundle"></a>

Devuelve true si la senda apunta a un enlace (simbólico o paquete).

#### Boolean isDir() <a href="#isdir" id="isdir"></a>

Devuelve true si la senda apunta a un directorio.

#### Boolean isExecutable() <a href="#isexecutable" id="isexecutable"></a>

Devuelve true si la senda apunta a un fichero ejecutable.

#### Boolean isFile() <a href="#isfile" id="isfile"></a>

Devuelve true si la senda apunta a un fichero o a un enlace simbólico.

#### Boolean isHidden() <a href="#ishidden" id="ishidden"></a>

Devuelve true si la senda apunta a un fichero o directorio oculto.

#### Boolean isReadable() <a href="#isreadable" id="isreadable"></a>

Devuelve true si la senda apunta a un fichero que puede ser leído.

#### Boolean isRelative() <a href="#isrelative" id="isrelative"></a>

Devuelve true si la senda apunta a un senda relativa.

#### Boolean isRoot() <a href="#isroot" id="isroot"></a>

Devuelve true si la senda apunta al directorio raíz o a un enlace simbólico del mismo.

#### Boolean isSymLink() <a href="#issymlink" id="issymlink"></a>

Devuelve true si la senda apunta a un enlace simbólico.

#### Boolean isWritable() <a href="#iswritable" id="iswritable"></a>

Devuelve true si la senda apunta a un fichero en el que se puede escribir.

#### DateTime lastModified() <a href="#lastmodified" id="lastmodified"></a>

Devuelve la fecha y hora de la última modificación del fichero.

#### DateTime lastRead() <a href="#lastread" id="lastread"></a>

Devuelve la fecha y hora de la última vez que el fichero fue leído o tuvo un acceso.

### Funciones de asignación

#### Boolean makeAbsolute() <a href="#makeabsolute" id="makeabsolute"></a>

Convierte el path del fichero en un senda absoluta. Devuelve true si la conversión ha finalizado correctamente. Si el path ya era absoluto devuelve false.

#### String owner() <a href="#owner" id="owner"></a>

Devuelve el nombre del propietario del fichero.

#### Number ownerId() <a href="#ownerid" id="ownerid"></a>

Devuelve el código (Id) del propietario del fichero

#### String path() <a href="#path" id="path"></a>

Devuelve la senda del fichero

#### Boolean permission( Number permissions ) <a href="#permission" id="permission"></a>

Chequea los permisos del fichero y devuelve true si el fichero los tiene.

Parámetros:

* permissions: number que indica los permisos. Ver enum de tipos de permisos del fichero en la clase [VFile](https://doc.velneo.com/30/velneo-vdevelop/scripts/lenguajes/javascript/clases/vfile)

#### Number permissions() <a href="#permissions" id="permissions"></a>

Devuelve el valor de los permisos del fichero. El valor devuelto es la suma (OR) de los valores de los permisos. Ver enum de permisos del fichero.

#### void refresh() <a href="#refresh" id="refresh"></a>

Refresca la información del fichero.

#### void setCaching( Boolean bEnable ) <a href="#setcaching" id="setcaching"></a>

Establece si el sistema tendrá caché de la información del fichero.

Parámetros:

* bEnable: booleano que indica true para que el sistema haga caché de la información del fichero.

#### void setFile( String szFilePath ) <a href="#setfile" id="setfile"></a>

Fija el fichero o directorio al que apuntará el objeto.

Parámetros:

* szFilePath = Path del fichero o directorio.

#### Number size() <a href="#size" id="size"></a>

Devuelve el tamaño del fichero en bytes.

#### String suffix() <a href="#suffix" id="suffix"></a>

Devuelve la extensión del fichero.

#### String symLinkTarget() <a href="#symlinktarget" id="symlinktarget"></a>

Devuelve la senda absoluta del fichero apuntado por el enlace simbólico o acceso directo.

## Ejemplos

### 1. Ejemplo de lectura de los ficheros del directorio raíz del sistema

```javascript
////////////////////////////////////////////////////////////
// Ejemplo de lectura de los ficheros del directorio raíz del sistema

// Para poder usar la clase VDir y sus funciones hay que importarla primero
importClass( "VDir" );

// Ss crear un objeto VDir con el directorio temporal de la aplicación
var dir = new VDir( theApp.rootPath() );

// Cargar la lista de ficheros y directorios
dir.load();

// Se inicializan las variables de trabajo
var filesNumber =0;
var totalSize = 0;
var filesList = "";

// Se recorren todos los ficheros del directorio
for ( i=0; i < dir.count(); i++ )
{
    // Se lee el fichero (Se obtiene un objeto VTableInfo)
    file = dir.entryAt( i );

    // Si es fichero se acumulan sus datos
    if ( file.isFile() ) {
        filesNumber++;
        totalSize += file.size();
        filesList += dir.entryAt( i ).filePath(file.path() ) + "\n";
    }
}

// Se visualizan los datos de todos los ficheros del directorio
alert( "En el directorio raíz (" + dir.path() + ")" + "\n" + 
        "Se han encontrado " + filesNumber.toString() + " ficheros: \n\n" + 
        filesList + "\n" + 
        "El tamaño total de los ficheros es " +  totalSize.toString() + " bytes." );
```
