filename.h

Clase wxFileName

wxFileName encapsula un nombre de archivo.

Esta clase tiene dos propósitos: en primer lugar, proporciona las funciones para dividir los nombres de archivo en componentes y recombinar estos componentes en el nombre completo del archivo, que luego se puede pasar a las funciones de archivo del sistema operativo (y a las funciones de wxWidgets que las envuelven). En segundo lugar, incluye las funciones para trabajar con los propios archivos. Hay que tener en cuenta que para cambiar los datos del archivo debe utilizar la clase wxFile. wxFileName proporciona funciones para trabajar con los atributos del archivo.

Cuando se trabaje con nombres de directorios (es decir, sin nombre de archivo ni extensión), hay que asegurarse de no utilizar incorrectamente la parte del nombre de archivo de esta clase con el último directorio. En su lugar, se ha de inicializar la instancia wxFileName de la siguiente manera:

wxFileName dirname( "C:\\mydir", "" );
MyMethod( dirname.GetPath() );

Lo mismo se puede hacer utilizando el método estático wxFileName::DirName():

wxFileName dirname = wxFileName::DirName( "C:\\mydir" );
MyMethod( dirname.GetPath() );

Por consiguiente, los métodos que tratan con directorios o nombres de directorios, como wxFileName::IsDirReadable(), utilizan wxFileName::GetPath(), mientras que los métodos que tratan con nombres de archivos, como wxFileName::IsFileReadable(), utilizan wxFileName::GetFullPath().

Si no se sabe si una cadena contiene un nombre de directorio o un nombre de archivo completo (por ejemplo, al interpretar la entrada del usuario), es necesario utilizar la función estática wxFileName::DirExists() (o sus variantes idénticas wxDir::Exists() y wxDirExists()) y construir la instancia wxFileName en consecuencia. Por supuesto, esto sólo funcionará si el directorio existe realmente:

wxString user_input;
// obtener información del usuario
 
wxFileName fname;
if (wxDirExists(user_input))
    fname.AssignDir( user_input );
else
    fname.Assign( user_input );

Hay que tener en cuenta que muchos métodos wxFileName aceptan el argumento de formato de ruta, que por defecto es wxPATH_NATIVE, lo que significa que se utiliza el formato de ruta nativo de la plataforma actual. El formato de ruta afecta al funcionamiento de las funciones wxFileName de varias maneras: en primer lugar, define el carácter separador de ruta que se va a utilizar, pero también afecta a otros aspectos, como si la ruta tiene la parte de la unidad o no. Consultar wxPathFormat para obtener más información.

Formato de nombre de archivo

wxFileName admite actualmente los nombres de archivo en los formatos Unix, DOS/Windows, Mac OS y VMS. Aunque estos formatos son bastante diferentes, wxFileName intenta tratarlos a todos de la misma manera genérica. Supone que todos los nombres de archivo constan de las siguientes partes: el volumen (también conocido como unidad en Windows o dispositivo en VMS), la ruta, que es una secuencia de nombres de directorios separados por los separadores de ruta, y el nombre completo del archivo, que a su vez se compone del nombre base del archivo y la extensión. Todos los componentes individuales del nombre del archivo pueden estar vacíos y, por ejemplo, el nombre del volumen siempre está vacío en Unix, pero si todos están vacíos simultáneamente, el objeto del nombre del archivo se considera en un estado no válido y wxFileName::IsOk() devuelve falso para él.

Los nombres de archivo pueden distinguir entre mayúsculas y minúsculas o no, la función wxFileName::IsCaseSensitive() permite determinarlo. Las reglas para determinar si el nombre de archivo es absoluto o relativo también dependen del formato del nombre de archivo y la única forma portable de responder a esta pregunta es utilizar el método wxFileName::IsAbsolute() o wxFileName::IsRelative().

Hay que tener en cuenta que en Windows, "X:" se refiere al directorio de trabajo actual en la unidad X. Por lo tanto, una instancia wxFileName construida a partir de, por ejemplo, "X:dir/file.ext" trata la parte posterior al separador de unidades como relativa a ese directorio. Para garantizar que el nombre de archivo sea absoluto, se puede utilizar wxFileName::MakeAbsolute(). También existe una función inversa, wxFileName::MakeRelativeTo(), que deshace lo que hace wxFileName::Normalize(wxPATH_NORM_DOTS). Otras funciones que devuelven información sobre el formato de archivo proporcionado por esta clase son wxFileName::GetVolumeSeparator() y wxFileName::IsPathSeparator().

Funciones miembro

wxFileName()

wxFileName::wxFileName()

Constructor por defecto.

wxFileName()

wxFileName::wxFileName(const wxFileName & filename)

Constructor copia.

wxFileName()

wxFileName::wxFileName( const wxString & fullpath, wxPathFormat format = wxPATH_NATIVE )

Constructor que toma un nombre de archivo completo.

Si termina con una "/", se construye una ruta de directorio (el nombre estará vacío); de lo contrario, se extraen de él el nombre del archivo y la extensión.

wxFileName()

wxFileName::wxFileName( const wxString & path, const wxString & name, wxPathFormat format = wxPATH_NATIVE )

Construye un nombre de directorio y un nombre de archivo.

wxFileName()

wxFileName::wxFileName( const wxString & path, const wxString & name, const wxString & ext, wxPathFormat format = wxPATH_NATIVE )

Constructor a partir de un nombre de directorio, un nombre de archivo base y una extensión.

wxFileName()

wxFileName::wxFileName( const wxString & volume, const wxString & path, const wxString & name, const wxString & ext, wxPathFormat format = wxPATH_NATIVE )

Constructor a partir de un nombre de volumen, un nombre de directorio, un nombre de archivo base y una extensión.

AppendDir()

bool wxFileName::AppendDir(const wxString & dir)

Añade un componente de directorio a la ruta.

Este componente debe contener un único nivel de nombre de directorio, es decir, no debe contener ningún separador de ruta o volumen ni estar vacío; de lo contrario, la función no hará nada y devolverá falso (y generará un error de comprobación en la compilación de depuración).

Hay que tener en cuenta que el valor de retorno sólo está disponible en wxWidgets 2.9.5 o posterior.

Assign()

void wxFileName::Assign(const wxFileName & filepath)

Crea el nombre del archivo a partir de otro objeto de nombre de archivo.

Assign()

void wxFileName::Assign( const wxString & fullpath, wxPathFormat format = wxPATH_NATIVE )

Crea el nombre del archivo a partir de un nombre completo con ruta.

Assign()

void wxFileName::Assign( const wxString & path, const wxString & name, const wxString & ext, wxPathFormat format = wxPATH_NATIVE )

Crea el nombre del archivo a partir de la ruta, el nombre y la extensión.

Assign()

void wxFileName::Assign( const wxString & path, const wxString & name, wxPathFormat format = wxPATH_NATIVE )

Crea el nombre del archivo a partir de la ruta del archivo y el nombre del archivo.

Assign()

void wxFileName::Assign( const wxString & volume, const wxString & path, const wxString & name, const wxString & ext, bool hasExt, wxPathFormat format = wxPATH_NATIVE )

Crea el nombre del archivo a partir del volumen, la ruta, el nombre y la extensión.

Assign()

void wxFileName::Assign( const wxString & volume, const wxString & path, const wxString & name, const wxString & ext, wxPathFormat format = wxPATH_NATIVE )

Crea el nombre del archivo a partir del volumen, la ruta, el nombre y la extensión.

AssignCwd()

void wxFileName::AssignCwd(const wxString & volume = wxEmptyString)

Hace que este objeto haga referencia al directorio de trabajo actual en el volumen especificado (o al volumen actual si el volumen está vacío).

AssignDir()

void wxFileName::AssignDir( const wxString & dir, wxPathFormat format = wxPATH_NATIVE )

Establece este objeto de nombre de archivo con el nombre del directorio dado.

El nombre y la extensión estarán vacíos.

AssignHomeDir()

void wxFileName::AssignHomeDir()

Establece este objeto de nombre de archivo en el directorio de inicio.

AssignTempFileName()

void wxFileName::AssignTempFileName(const wxString & prefix)

La función llama a CreateTempFileName() para crear un archivo temporal y establece este objeto como el nombre del archivo.

Si no se pudo crear un archivo temporal, el objeto se pone en un estado no válido (véase IsOk()).

AssignTempFileName()

void wxFileName::AssignTempFileName( const wxString & prefix, wxFFile * fileTemp )

La función llama a CreateTempFileName() para crear un nombre de archivo temporal y abrir fileTemp con él.

Si no se pudo abrir el archivo, el objeto se pone en un estado no válido (véase IsOk()).

AssignTempFileName()

void wxFileName::AssignTempFileName( const wxString & prefix, wxFile * fileTemp )

La función llama a CreateTempFileName() para crear un nombre de archivo temporal y abrir fileTemp con él.

Si no se pudo abrir el archivo, el objeto se pone en un estado no válido (véase IsOk()).

Clear()

void wxFileName::Clear()

Restablece todos los componentes a su estado predeterminado, sin inicializar.

ClearExt()

void wxFileName::ClearExt()

Elimina la extensión del nombre del archivo, lo que da como resultado un nombre de archivo sin punto final.

CreateTempFileName()

static wxString wxFileName::CreateTempFileName( const wxString & prefix, wxFFile * fileTemp = nullptr )

Es igual que CreateTempFileName(const wxString &prefix, wxFile *fileTemp), pero toma un parámetro wxFFile en lugar de wxFile.

CreateTempFileName()

static wxString wxFileName::CreateTempFileName( const wxString & prefix, wxFile * fileTemp = nullptr )

Devuelve un nombre de archivo temporal que comienza con el prefijo dado.

Si el prefijo es una ruta absoluta y termina en un separador, el archivo temporal se crea en este directorio; si es una ruta de archivo absoluta o no hay separador, el archivo temporal se crea en su ruta, con el segmento "nombre" antepuesto al nombre del archivo temporal; de lo contrario, se crea en el directorio predeterminado del sistema para archivos temporales o en el directorio actual.

Si la función tiene éxito, el archivo temporal se crea realmente. Si fileTemp no es nullptr, este wxFile se abrirá utilizando el nombre del archivo temporal. Siempre que sea posible, esto se hace de forma atómica para garantizar que no se produzca una condición de carrera entre la creación del nombre del archivo temporal y su apertura, lo que podría comprometer la seguridad en sistemas multiusuario. Si fileTemp es nullptr, el archivo se crea pero no se abre. En Unix, el archivo temporal tendrá permisos de lectura y escritura sólo para el propietario, a fin de minimizar los problemas de seguridad.

Parámetros
prefijo
Ubicación que se utilizará para la construcción del nombre del archivo temporal. Si prefijo es un directorio, debe tener un separador terminal.
fileTemp
El archivo que se va a abrir, o nullptr solo para obtener el nombre.
Devuelve

La ruta completa del archivo temporal o una cadena vacía en caso de error.

DirExists()

bool wxFileName::DirExists() const

Devuelve verdadero si existe el directorio con este nombre.

Hay que tener en cuenta que esta función comprueba la parte del directorio de este objeto, es decir, la cadena devuelta por GetPath(), y no la ruta completa devuelta por GetFullPath().

DirExists()

static bool wxFileName::DirExists(const wxString & dir)

Devuelve verdadero si existe el directorio con el nombre dir.

DirName()

static wxFileName wxFileName::DirName( const wxString & dir, wxPathFormat format = wxPATH_NATIVE )

Devuelve el objeto correspondiente al directorio con el nombre dado.

El parámetro dir puede tener o no un separador de ruta al final.

void wxFileName::DontFollowLink()

Desactiva la desreferenciación de enlaces simbólicos.

De forma predeterminada, todas las operaciones de esta clase funcionan en el destino de un enlace simbólico (symlink) si la ruta del archivo es realmente un enlace simbólico. El uso de este método permite desactivar este comportamiento de "seguimiento de enlaces simbólicos" y aplicar las operaciones a la propia ruta, incluso si se trata de un enlace simbólico.

Actualmente, los siguientes métodos se ven afectados por esta opción:

  • GetTimes() (pero no SetTimes(), ya que no hay una forma portable de cambiar la hora del propio enlace simbólico).
  • Comprobaciones de existencia: FileExists(), DirExists() y Exists() (hay que tener en cuenta que las versiones estáticas de estos métodos siempre siguen los enlaces simbólicos).
  • IsSameAs().
Exists()

static bool wxFileName::Exists( const wxString & path, int flags = wxFILE_EXISTS_ANY )

Devuelve verdadero si existe un archivo, un directorio o cualquier otro elemento con este nombre en el sistema de archivos.

No desreferencia la ruta si se trata de un enlace simbólico y el argumento flags contiene wxFILE_EXISTS_NO_FOLLOW.

Este método es equivalente a

FileExists() || DirExists() 

en Windows, pero en Unix también devuelve verdadero si el archivo identifica un objeto especial del sistema de archivos, como un dispositivo, un socket o un FIFO.

También se puede comprobar la existencia de una entrada del sistema de archivos de un tipo específico pasando los indicadores adecuados (este parámetro es nuevo desde wxWidgets 2.9.5). Por ejemplo, para comprobar la existencia de un enlace simbólico, puede utilizar wxFILE_EXISTS_SYMLINK.

Exists()

bool wxFileName::Exists(int flags = wxFILE_EXISTS_ANY) const

Llama a la sobrecarga estática de esta función con la ruta completa de este objeto.

FileExists()

bool wxFileName::FileExists() const

Devuelve verdadero si existe el archivo con este nombre.

wxFileName()

static bool wxFileName::FileExists(const wxString & file)

Devuelve verdadero si existe el archivo con el nombre file.

FileName()

static wxFileName wxFileName::FileName( const wxString & file, wxPathFormat format = wxPATH_NATIVE )

Devuelve el objeto nombre de archivo correspondiente al archivo dado.

Esta función existe principalmente por simetría con DirName().

FileNameToURL()

static wxString wxFileName::FileNameToURL(const wxFileName & filename)

Convierte un wxFileName en una URL.

GetAbsolutePath()

wxString wxFileName::GetAbsolutePath( const wxString & cwd = wxEmptyString, wxPathFormat format = wxPATH_NATIVE ) const

Devuelve la ruta absoluta completa de este archivo.

Se trata simplemente de un atajo práctico que utiliza internamente MakeAbsolute() y GetFullPath().

GetCwd()

static wxString wxFileName::GetCwd(const wxString & volume = wxEmptyString)

Recupera el valor del directorio de trabajo actual en el volumen especificado.

Si el volumen está vacío, se devuelve el directorio de trabajo actual del programa para el volumen actual.

Valor de retorno

La cadena que contiene el directorio de trabajo actual o una cadena vacía en caso de error.

GetDirCount()

size_t wxFileName::GetDirCount() const

Devuelve el número de directorios en el nombre del archivo.

GetDirs()

const wxArrayString& wxFileName::GetDirs() const

Devuelve los directorios en forma de matriz de cadenas.

GetExt()

wxString wxFileName::GetExt() const

Devuelve la extensión del nombre del archivo.

GetForbiddenChars()

static wxString wxFileName::GetForbiddenChars(wxPathFormat format = wxPATH_NATIVE)

Devuelve los caracteres que no se pueden utilizar en nombres de archivo y nombres de directorio para el formato especificado.

GetFormat()

static wxPathFormat wxFileName::GetFormat(wxPathFormat format = wxPATH_NATIVE)

Devuelve el formato de ruta canónica para esta plataforma.

GetFullName()

wxString wxFileName::GetFullName() const

Devuelve el nombre completo (incluida la extensión, pero excluyendo los directorios).

GetFullPath()

wxString wxFileName::GetFullPath(wxPathFormat format = wxPATH_NATIVE) const

Devuelve la ruta completa con el nombre y la extensión.

GetHomeDir()

static wxString wxFileName::GetHomeDir()

Devuelve el directorio de inicio.

GetHumanReadableSize()

wxString wxFileName::GetHumanReadableSize( const wxString & failmsg = _("Not available"), int precision = 1, wxSizeConvention conv = wxSIZE_CONV_TRADITIONAL ) const

Devuelve la representación del tamaño del archivo en un formato legible para los humanos.

En la primera versión, se utiliza el tamaño de este archivo. En la segunda, se utiliza el tamaño especificado en bytes.

Si no se ha podido recuperar el tamaño del archivo o los bytes son wxInvalidSize o cero, se devuelve la cadena failmsg.

De lo contrario, la cadena devuelta es un número de punto flotante con dígitos decimales de precisión seguido de la abreviatura de la unidad utilizada. Por defecto, se utiliza la convención tradicional, aunque incorrecta, de utilizar unidades SI para múltiplos de 1024, es decir, la cadena devuelta utilizará los sufijos B, KB, MB, GB, TB para bytes, kilobytes, megabytes, gigabytes y terabytes, respectivamente. Con la convención IEC, los nombres de las unidades se cambian a B, KiB, MiB, GiB y TiB para bytes, kibibytes, mebibytes, gibibytes y tebibytes. Por último, con la convención SI se utilizan los mismos sufijos B, KB, MB, GB y TB, pero con su significado SI correcto, es decir, como múltiplos de 1000 y no de 1024.

La compatibilidad con las diferentes convenciones de tamaño es nueva en wxWidgets 2.9.1, en versiones anteriores sólo se implementaba la convención tradicional.

GetHumanReadableSize()

static wxString wxFileName::GetHumanReadableSize( const wxULongLong & bytes, const wxString & nullsize = _("Not available"), int precision = 1, wxSizeConvention conv = wxSIZE_CONV_TRADITIONAL )

Devuelve la representación del tamaño del archivo en un formato legible para los humanos.

En la primera versión, se utiliza el tamaño de este archivo. En la segunda, se utiliza el tamaño especificado en bytes.

Si no se ha podido recuperar el tamaño del archivo o los bytes son wxInvalidSize o cero, se devuelve la cadena failmsg.

De lo contrario, la cadena devuelta es un número de punto flotante con dígitos decimales de precisión seguido de la abreviatura de la unidad utilizada. Por defecto, se utiliza la convención tradicional, aunque incorrecta, de utilizar unidades SI para múltiplos de 1024, es decir, la cadena devuelta utilizará los sufijos B, KB, MB, GB, TB para bytes, kilobytes, megabytes, gigabytes y terabytes, respectivamente. Con la convención IEC, los nombres de las unidades se cambian a B, KiB, MiB, GiB y TiB para bytes, kibibytes, mebibytes, gibibytes y tebibytes. Por último, con la convención SI se utilizan los mismos sufijos B, KB, MB, GB y TB, pero con su significado SI correcto, es decir, como múltiplos de 1000 y no de 1024.

La compatibilidad con las diferentes convenciones de tamaño es nueva en wxWidgets 2.9.1, en versiones anteriores sólo se implementaba la convención tradicional.

GetLongPath()

wxString wxFileName::GetLongPath() const

Devuelve la forma larga de la ruta (devuelve la identidad en plataformas que no sean Windows).

GetModificationTime()

wxDateTime wxFileName::GetModificationTime() const

Devuelve la última vez que se modificó el archivo.

GetName()

wxString wxFileName::GetName() const

Devuelve la parte del nombre del archivo (sin extensión).

GetPath()

wxString wxFileName::GetPath( int flags = wxPATH_GET_VOLUME, wxPathFormat format = wxPATH_NATIVE ) const

Devuelve la parte de la ruta del nombre de archivo (sin el nombre ni la extensión).

Los posibles valores de los indicadores son:

  • wxPATH_GET_VOLUME: Devuelve la ruta con el volumen (no hace nada con los formatos de nombre de archivo sin volúmenes); de lo contrario, se devuelve la ruta sin la parte del volumen.
  • wxPATH_GET_SEPARATOR: Devuelve la ruta con el separador final; si no se proporciona este indicador, no habrá separador al final de la ruta.
  • wxPATH_NO_SEPARATOR: No incluye el separador final en la cadena devuelta. Este es el valor predeterminado (el valor de esta bandera es 0) y sólo existe por simetría con wxPATH_GET_SEPARATOR.

Nota: Si la ruta es de nivel superior (por ejemplo, "/" en Unix o "C:\" en Windows), la ruta devuelta contendrá el separador final incluso con wxPATH_NO_SEPARATOR.

GetPathSeparator()

static wxUniChar wxFileName::GetPathSeparator(wxPathFormat format = wxPATH_NATIVE)

Devuelve el separador de ruta que se utiliza habitualmente para este formato.

Para todos los formatos excepto wxPATH_DOS sólo hay un separador de ruta, pero para DOS hay dos y el nativo, es decir, la barra invertida, se devuelve mediante este método.

GetPathSeparators()

static wxString wxFileName::GetPathSeparators(wxPathFormat format = wxPATH_NATIVE)

Devuelve la cadena que contiene todos los separadores de ruta para este formato.

Para todos los formatos excepto wxPATH_DOS, esta cadena contiene solo un carácter, pero para DOS y Windows se pueden utilizar tanto "/" como "\" como separadores.

GetPathTerminators()

static wxString wxFileName::GetPathTerminators(wxPathFormat format = wxPATH_NATIVE)

Devuelve la cadena de caracteres que puede terminar la parte de la ruta.

Es igual que GetPathSeparators(), excepto en el formato de ruta VMS, donde se utiliza ] al final de la parte de la ruta.

GetPathWithSep()

wxString wxFileName::GetPathWithSep(wxPathFormat format = wxPATH_NATIVE) const

Devuelve la ruta con el separador final, útil para añadir el nombre a la ruta dada.

Es lo mismo que llamar a:

GetPath(wxPATH_GET_VOLUME | wxPATH_GET_SEPARATOR, format)
GetShortPath()

wxString wxFileName::GetShortPath() const

Devuelve la forma abreviada de la ruta (devuelve la identidad en plataformas que no sean Windows).

GetSize()

wxULongLong wxFileName::GetSize() const

Devuelve el tamaño del archivo. Si el archivo no existe o no se ha podido leer su tamaño (por ejemplo, porque el archivo está bloqueado por otro proceso), el valor devuelto es wxInvalidSize.

GetSize()

static wxULongLong wxFileName::GetSize(const wxString & filename)

Devuelve el tamaño del archivo. Si el archivo no existe o no se ha podido leer su tamaño (por ejemplo, porque el archivo está bloqueado por otro proceso), el valor devuelto es wxInvalidSize.

GetTempDir()

static wxString wxFileName::GetTempDir()

Devuelve el directorio utilizado para los archivos temporales del usuario actual.

Igual que wxStandardPaths::GetTempDir().

GetTimes()

bool wxFileName::GetTimes( wxDateTime * dtAccess, wxDateTime * dtMod, wxDateTime * dtCreate ) const

Devuelve las últimas horas de acceso, modificación y creación.

La última hora de acceso se actualiza cada vez que se lee o se escribe el archivo (o se ejecuta en el caso de Windows), la última hora de modificación sólo se cambia cuando se escribe en el archivo. Por último, la hora de creación es, de hecho, la hora en la que se creó el archivo en Windows y la hora de cambio del inodo en Unix (ya que es imposible recuperar la hora real de creación del archivo allí de todos modos), que también puede cambiarse mediante muchas operaciones después de la creación del archivo.

Si no se especifica ningún nombre de archivo o extensión en esta instancia de wxFileName (y, por lo tanto, IsDir() devuelve verdadero), esta función devolverá los tiempos del directorio de la ruta especificada por GetPath(), de lo contrario, los tiempos del archivo especificado por GetFullPath(). Cualquiera de los punteros puede ser NULL si no se necesita el tiempo correspondiente.

Valor de retorno

Verdadero si se realiza correctamente, falso si no se han podido recuperar los tiempos.

GetVolume()

wxString wxFileName::GetVolume() const

Devuelve la cadena que contiene el volumen para este nombre de archivo.

La cadena devuelta estará vacía si este objeto no tiene un nombre de volumen, como suele ser el caso de las rutas en formato Unix, que no admiten volúmenes.

Hay que tener en cuenta que, para las rutas en formato wxPATH_DOS, la cadena devuelta puede tener una de las siguientes formas:

  • Una sola letra, para los volúmenes con letras de unidad habituales, por ejemplo, C.
  • Un nombre compartido precedido por una doble barra invertida, por ejemplo, \\share.
  • Un volumen GUID precedido por una doble barra invertida y un signo de interrogación, por ejemplo, \\?\Volume{12345678-9abc-def0-1234-56789abcdef0}.
GetVolumeSeparator()

static wxString wxFileName::GetVolumeSeparator(wxPathFormat format = wxPATH_NATIVE)

Devuelve la cadena que separa el volumen de la ruta para este formato.

Hay que tener en cuenta que, para las rutas wxPATH_DOS, esta cadena sólo se puede utilizar para volúmenes de un sólo carácter que representen las letras de unidad, pero no con los volúmenes UNC o GUID (consultar su descripción en la documentación de GetVolume()). Por este motivo, se debe evitar su uso y es preferible utilizar el constructor wxFileName y la sobrecarga Assign(), tomando el volumen y la ruta como argumentos separados para combinar el volumen y la ruta en una sola cadena utilizando el separador de volumen entre ellos.

GetVolumeString()

static wxString wxFileName::GetVolumeString( char drive, int flags = wxPATH_GET_SEPARATOR )

Esta función crea una cadena de ruta de volumen, por ejemplo, "C:\\".

Implementada para las plataformas que utilizan letras de unidad, es decir, sólo MSW.

Parámetros
drive
La letra de la unidad, de "A" a "Z" o de "a" a "z".
flags
wxPATH_NO_SEPARATOR o wxPATH_GET_SEPARATOR para omitir o incluir el separador de ruta final; el valor predeterminado es incluirlo.
Valor de retorno

Cadena de ruta de volumen.

HasExt()

bool wxFileName::HasExt() const

Devuelve verdadero si existe una extensión.

HasName()

bool wxFileName::HasName() const

Devuelve verdadero si hay un nombre presente.

HasVolume()

bool wxFileName::HasVolume() const

Devuelve verdadero si hay un especificador de volumen presente.

InsertDir()

bool wxFileName::InsertDir( size_t before, const wxString & dir )

Inserta un componente de directorio antes de la posición cero en la lista de directorios.

Al igual que con AppendDir(), dir debe ser un nombre de directorio único y la función devuelve falso y no hace nada más si no lo es.

Hay que tener en cuenta que el valor de retorno sólo está disponible en wxWidgets 2.9.5 o posterior.

IsAbsolute()

bool wxFileName::IsAbsolute(wxPathFormat format = wxPATH_NATIVE) const

Devuelve verdadero si este nombre de archivo es absoluto

IsCaseSensitive()

static bool wxFileName::IsCaseSensitive(wxPathFormat format = wxPATH_NATIVE)

Devuelve verdadero si los nombres de archivo de este tipo distinguen entre mayúsculas y minúsculas.

IsDir()

bool wxFileName::IsDir() const

Devuelve verdadero si este objeto representa un directorio, falso en caso contrario (es decir, si es un archivo).

Hay que tener en cuenta que este método no comprueba si el directorio o el archivo existen realmente; para ello, se debe utilizar DirExists() o FileExists().

IsDirReadable()

bool wxFileName::IsDirReadable() const

Devuelve verdadero si el componente de directorio de esta instancia es un directorio existente y este proceso tiene permisos de lectura sobre él.

Los permisos de lectura sobre un directorio significan que se puede enumerar el contenido del directorio, pero no implican que se tengan permisos de lectura sobre los archivos que contiene.

IsDirReadable()

static bool wxFileName::IsDirReadable(const wxString & dir)

Devuelve verdadero si el directorio dado es un directorio existente y este proceso tiene permisos de lectura sobre él.

Los permisos de lectura sobre un directorio significan que puedes listar el contenido del directorio, pero no implican que tengas permisos de lectura sobre los archivos que contiene.

IsDirWritable()

bool wxFileName::IsDirWritable() const

Devuelve verdadero si el componente de directorio de esta instancia es un directorio existente y este proceso tiene permisos de escritura en él.

Los permisos de escritura en un directorio significan que se pueden crear nuevos archivos en el directorio.

IsDirWritable()

static bool wxFileName::IsDirWritable(const wxString & dir)

Devuelve verdadero si el directorio dado es un directorio existente y este proceso tiene permisos de escritura en él.

Los permisos de escritura en un directorio significan que se pueden crear nuevos archivos en el directorio.

IsFileExecutable()

bool wxFileName::IsFileExecutable() const

Devuelve verdadero si existe un archivo con este nombre y si este proceso tiene permisos de ejecución sobre él.

IsFileExecutable()

static bool wxFileName::IsFileExecutable(const wxString & file)

Devuelve verdadero si existe un archivo con este nombre y si este proceso tiene permisos de ejecución sobre él.

IsFileReadable()

bool wxFileName::IsFileReadable() const

Devuelve verdadero si existe un archivo con este nombre y si este proceso tiene permisos de lectura sobre él.

IsFileReadable()

static bool wxFileName::IsFileReadable(const wxString & file)

Devuelve verdadero si existe un archivo con este nombre y si este proceso tiene permisos de lectura sobre él.

IsFileWritable()

bool wxFileName::IsFileWritable() const

Devuelve verdadero si existe un archivo con este nombre y si este proceso tiene permisos de escritura sobre él.

IsFileWritable()

static bool wxFileName::IsFileWritable(const wxString & file)

Devuelve verdadero si existe un archivo con este nombre y si este proceso tiene permisos de escritura sobre él.

IsMSWUniqueVolumeNamePath()

static bool wxFileName::IsMSWUniqueVolumeNamePath( const wxString & path, wxPathFormat format = wxPATH_NATIVE )

Devuelve verdadero si la parte del volumen de la ruta es un nombre de volumen único.

Esta función siempre devolverá falso si el formato de la ruta no es wxPATH_DOS.

Los nombres de volumen únicos son identificadores de volumen de Windows que permanecen iguales independientemente de dónde esté montado realmente el volumen. Un ejemplo de una ruta que utiliza un nombre de volumen podría ser:

\\?\Volume{8089d7d7-d0ac-11db-9dd0-806d6172696f}\Program Files\setup.exe
IsOk()

bool wxFileName::IsOk() const

Devuelve verdadero si el nombre de archivo es válido, falso si aún no está inicializado.

Las funciones de asignación y Clear() pueden restablecer el objeto al estado no inicializado e inválido (las primeras sólo lo hacen en caso de fallo).

IsPathSeparator()

static bool wxFileName::IsPathSeparator( wxChar ch, wxPathFormat format = wxPATH_NATIVE )

Devuelve verdadero si el carácter es un separador de ruta para este formato.

IsRelative()

bool wxFileName::IsRelative(wxPathFormat format = wxPATH_NATIVE) const

Devuelve verdadero si este nombre de archivo no es absoluto.

MakeAbsolute()

bool wxFileName::MakeAbsolute( const wxString & cwd = wxEmptyString, wxPathFormat format = wxPATH_NATIVE )

Hace que el nombre del archivo sea absoluto.

Este es un atajo para:

wxFileName::Normalize(wxPATH_NORM_DOTS | wxPATH_NORM_ABSOLUTE |
                      wxPATH_NORM_TILDE, cwd, format)
MakeRelativeTo()

bool wxFileName::MakeRelativeTo( const wxString & pathBase = wxEmptyString, wxPathFormat format = wxPATH_NATIVE )

Esta función intenta colocar este nombre de archivo en un formato relativo a pathBase.

En otras palabras, devuelve el nombre de archivo que se debe utilizar para acceder a este archivo si el directorio actual fuera pathBase.

Parámetros
pathBase
El directorio que se utilizará como raíz; por defecto se utiliza el directorio actual.
format
El formato del nombre del archivo; por defecto es nativo.
Valor de retorno

true si se ha cambiado el nombre del archivo, false si no se ha podido hacer nada con él (actualmente esto sólo ocurre si el nombre del archivo se encuentra en un volumen diferente al especificado por pathBase).

Mkdir()

static bool wxFileName::Mkdir( const wxString & dir, int perm = wxS_DIR_DEFAULT, int flags = 0 )

Crea un directorio.

Parámetros
dir
El directorio que se va a crear.
perm
Los permisos para el directorio recién creado. Consultar la enumeración wxPosixPermissions para obtener más información.
flags
Si los indicadores contienen el indicador wxPATH_MKDIR_FULL, se intentará crear cada directorio en la ruta y no devuelve un error si el directorio de destino ya existe.
Valor de retorno

Devuelve true si el directorio se ha creado correctamente, false en caso contrario.

Mkdir()

bool wxFileName::Mkdir( int perm = wxS_DIR_DEFAULT, int flags = 0 ) const

Crea un directorio.

Parámetros
perm
Los permisos para el directorio recién creado. Consultar la enumeración wxPosixPermissions para obtener más información.
flags
Si los indicadores contienen el indicador wxPATH_MKDIR_FULL, se intentará crear cada directorio en la ruta y no devuelve un error si el directorio de destino ya existe.
Valor de retorno

Devuelve true si el directorio se ha creado correctamente, false en caso contrario.

Normalize()

bool wxFileName::Normalize( int flags, const wxString & cwd = wxEmptyString, wxPathFormat format = wxPATH_NATIVE )

Normaliza la ruta.

Con el valor predeterminado de los indicadores, la ruta se convertirá en absoluta, sin ".." ni ".", y, en el caso de las rutas con formato Unix, cualquier aparición del carácter tilde (~) se sustituirá por el directorio de inicio del usuario que le sigue.

Hay que tener en cuenta que, en algunos casos excepcionales, la normalización de una ruta válida puede dar lugar a un objeto wxFileName no válido. Por ejemplo, la normalización de la ruta "./" utilizando wxPATH_NORM_DOTS pero no wxPATH_NORM_ABSOLUTE dará como resultado un objeto completamente vacío y, por lo tanto, no válido. Sin embargo, siempre que haya un nombre de archivo no vacío, el resultado de la normalización será válido.

Parámetros
flags
El tipo de normalización que se debe realizar con el nombre del archivo. Puede ser cualquier combinación de los valores de la enumeración wxPathNormalize. Estos valores deben especificarse explícitamente; si se omiten, se utiliza el valor wxPATH_NORM_ALL, que está en desuso y no se recomienda. Consultar la enumeración wxPathNormalize para obtener más detalles.
cwd
Si no está vacío, se utilizará este directorio en lugar del directorio de trabajo actual en la normalización (consultar wxPATH_NORM_ABSOLUTE).
format
El formato de nombre de archivo que se utilizará al procesar las rutas, nativo por defecto.
Valor de retorno

true si la normalización se ha realizado correctamente o false en caso contrario.

PrependDir()

void wxFileName::PrependDir(const wxString & dir)

Antepone un directorio a la ruta del archivo.

Consultar AppendDir() para obtener notas importantes.

RemoveDir()

void wxFileName::RemoveDir(size_t pos)

Elimina el componente de directorio especificado de la ruta.

RemoveLastDir()

void wxFileName::RemoveLastDir()

Elimina el último componente del directorio de la ruta.

ReplaceEnvVariable()

bool wxFileName::ReplaceEnvVariable( const wxString & envname, const wxString & replacementFmtString = "$%s", wxPathFormat format = wxPATH_NATIVE )

Si la ruta contiene el valor de la variable de entorno denominada envname, esta función la sustituye por la cadena obtenida de wxString::Format(replacementFmtString, value_of_envname_variable).

Esta función es útil para acortar la ruta o hacerla dependiente de una determinada variable de entorno. Normalize() con wxPATH_NORM_ENV_VARS puede realizar la operación opuesta a esta función (dependiendo del valor de replacementFmtString).

El nombre y la extensión de este nombre de archivo no se modifican.

Ejemplo:

wxFileName fn("/usr/openwin/lib/someFile");
fn.ReplaceEnvVariable("OPENWINHOME");
        // ahora fn.GetFullPath() == "$OPENWINHOME/lib/someFile"
Valor de retorno

true si la operación se ha realizado correctamente (lo que no significa que se haya sustituido realmente algo, sólo que wxGetEnv no ha fallado).

ReplaceHomeDir()

bool wxFileName::ReplaceHomeDir(wxPathFormat format = wxPATH_NATIVE)

Reemplaza, si está presente en la ruta, el directorio de inicio del usuario dado (ver wxGetHomeDir) por un tilde (~).

Normalize() con wxPATH_NORM_TILDE realiza lo contrario a esta función.

El nombre y la extensión de este nombre de archivo no se modifican.

Valor de retorno

true si la operación se ha realizado correctamente (lo que no significa que se haya sustituido realmente algo, solo quewxGetHomeDir no ha fallado).

wxFileName wxFileName::ResolveLink()

Busca la ruta absoluta del archivo/directorio al que apunta esta ruta.

Si esta ruta no es un enlace simbólico, esta función devolverá la ruta actual. Si la ruta no existe en el disco, se devolverá una instancia wxFileName vacía.

Nota: Esto sólo es compatible en plataformas similares a Unix (por ejemplo, wxGTK, wxOSX); en otras plataformas (por ejemplo, wxMSW), esta función sólo devuelve la ruta actual.

Valor de retorno

La ruta absoluta a la que apunta la ruta del enlace simbólico actual.

Rmdir()

static bool wxFileName::Rmdir( const wxString & dir, int flags = 0 )

Elimina el directorio especificado del sistema de archivos.

Parámetros
dir
El directorio que se va a eliminar.
flags
Con el valor predeterminado, el directorio sólo se elimina si está vacío. Si se especifica wxPATH_RMDIR_FULL, se elimina incluso si contiene subdirectorios, siempre que no haya archivos ni en este directorio ni en sus subdirectorios. Si flags contiene wxPATH_RMDIR_RECURSIVE, el directorio se elimina con todos los archivos y directorios que contiene.
Valor de retorno

Devuelve true si el directorio se ha eliminado correctamente, false en caso contrario.

Rmdir()

bool wxFileName::Rmdir(int flags = 0) const

Elimina el directorio especificado del sistema de archivos.

Parámetros
flags
Con el valor predeterminado, el directorio sólo se elimina si está vacío. Si se especifica wxPATH_RMDIR_FULL, se elimina incluso si contiene subdirectorios, siempre que no haya archivos ni en este directorio ni en sus subdirectorios. Si flags contiene wxPATH_RMDIR_RECURSIVE, el directorio se elimina con todos los archivos y directorios que contiene.
Valor de retorno

Devuelve true si el directorio se ha eliminado correctamente, false en caso contrario.

SameAs()

bool wxFileName::SameAs( const wxFileName & filepath, wxPathFormat format = wxPATH_NATIVE ) const

Compara el nombre del archivo utilizando las reglas de esta plataforma.

SetCwd()

bool wxFileName::SetCwd() const

Cambia el directorio de trabajo actual.

SetCwd()

static bool wxFileName::SetCwd(const wxString & cwd)

Cambia el directorio de trabajo actual.

SetEmptyExt()

void wxFileName::SetEmptyExt()

Establece la extensión del nombre del archivo como una extensión vacía.

Esto es diferente a no tener ninguna extensión, ya que el nombre del archivo tendrá un punto al final después de llamar a este método.

SetExt()

void wxFileName::SetExt(const wxString & ext)

Establece la extensión del nombre del archivo.

Si se establece una cadena vacía como extensión, se eliminará la extensión, lo que dará como resultado un nombre de archivo sin punto final, a diferencia de lo que ocurre con la llamada a SetEmptyExt().

SetFullName()

void wxFileName::SetFullName(const wxString & fullname)

Asigna el nombre completo es el nombre del archivo y la extensión (pero sin la ruta).

SetName()

void wxFileName::SetName(const wxString & name)

Establece la parte del nombre (sin extensión).

SetPath()

void wxFileName::SetPath( const wxString & path, wxPathFormat format = wxPATH_NATIVE )

Establece la ruta.

El argumento de ruta incluye tanto la ruta como el volumen, si el formato lo admite.

Llamar a esta función no afecta a los componentes de nombre y extensión. Para cambiarlos también, se puede utilizar Assign() o simplemente un operador de asignación.

SetPermissions()

bool wxFileName::SetPermissions(int permissions)

Establece los permisos para este archivo o directorio.

Parámetros
permissions
Los nuevos permisos: deben ser una combinación de elementos de la enumeración wxPosixPermissions.

Nota: Si se trata de un enlace simbólico y no debe seguirse, esta llamada fallará.

Valor de retorno

true si se realiza correctamente, false si se produce un error (por ejemplo, el archivo no existe).

SetTimes()

bool wxFileName::SetTimes( const wxDateTime * dtAccess, const wxDateTime * dtMod, const wxDateTime * dtCreate ) const

Establece la hora de creación del archivo y la hora del último acceso/modificación (cualquiera de los punteros puede ser nullptr).

Hay que tener en cuenta que la hora de creación del archivo no se puede cambiar en Unix, por lo que dtCreate se ignora allí (pero se sigue devolviendo true). En Windows se pueden establecer las tres horas.

SetVolume()

void wxFileName::SetVolume(const wxString & volume)

Establece el especificador de volumen.

bool wxFileName::ShouldFollowLink() const

Devuelve si algunas operaciones seguirán el enlace simbólico.

Por defecto, las operaciones con archivos "siguen el enlace simbólico", es decir, operan sobre su destino y no sobre el propio enlace simbólico. Consultar DontFollowLink() para obtener más información.

SplitPath()

static void wxFileName::SplitPath( const wxString & fullpath, wxString * path, wxString * name, wxString * ext, wxPathFormat format = wxPATH_NATIVE )

Esta función divide un nombre de archivo completo en componentes: el volumen (con la primera versión), la ruta (incluido el volumen en la segunda versión), el nombre base y la extensión.

Cualquiera de los parámetros de salida (volumen, ruta, nombre o extensión) puede ser nullptr si no interesa el valor de un componente en particular. Además, fullpath puede estar vacío al entrar. Al regresar, path contiene la ruta del archivo (sin el separador final), name contiene el nombre del archivo y ext contiene la extensión del archivo sin el punto inicial. Los tres pueden estar vacíos si el componente correspondiente lo está. El contenido antiguo de las cadenas a las que apuntan estos parámetros se sobrescribirá en cualquier caso (si los punteros no son nullptr).

Hay que tener en cuenta que para un nombre de archivo "foo.", la extensión está presente, como indica el punto final, pero está vacía. Si se necesita hacer frente a estos casos, se debe utilizar hasExt en lugar de basarse en comprobar si ext está vacío o no.

SplitPath()

static void wxFileName::SplitPath( const wxString & fullpath, wxString * volume, wxString * path, wxString * name, wxString * ext, bool * hasExt = nullptr, wxPathFormat format = wxPATH_NATIVE )

Esta función divide un nombre de archivo completo en componentes: el volumen (con la primera versión), la ruta (incluido el volumen en la segunda versión), el nombre base y la extensión.

Cualquiera de los parámetros de salida (volumen, ruta, nombre o extensión) puede ser nullptr si no interesa el valor de un componente en particular. Además, fullpath puede estar vacío al entrar. Al regresar, path contiene la ruta del archivo (sin el separador final), name contiene el nombre del archivo y ext contiene la extensión del archivo sin el punto inicial. Los tres pueden estar vacíos si el componente correspondiente lo está. El contenido antiguo de las cadenas a las que apuntan estos parámetros se sobrescribirá en cualquier caso (si los punteros no son nullptr).

Hay que tener en cuenta que para un nombre de archivo "foo.", la extensión está presente, como indica el punto final, pero está vacía. Si se necesita hacer frente a estos casos, se debe utilizar hasExt en lugar de basarse en comprobar si ext está vacío o no.

SplitPath()

static void wxFileName::SplitPath( const wxString & fullpath, wxString * volume, wxString * path, wxString * name, wxString * ext, wxPathFormat format )

Esta función divide un nombre de archivo completo en componentes: el volumen (con la primera versión), la ruta (incluido el volumen en la segunda versión), el nombre base y la extensión.

Cualquiera de los parámetros de salida (volumen, ruta, nombre o extensión) puede ser nullptr si no interesa el valor de un componente en particular. Además, fullpath puede estar vacío al entrar. Al regresar, path contiene la ruta del archivo (sin el separador final), name contiene el nombre del archivo y ext contiene la extensión del archivo sin el punto inicial. Los tres pueden estar vacíos si el componente correspondiente lo está. El contenido antiguo de las cadenas a las que apuntan estos parámetros se sobrescribirá en cualquier caso (si los punteros no son nullptr).

Hay que tener en cuenta que para un nombre de archivo "foo.", la extensión está presente, como indica el punto final, pero está vacía. Si se necesita hacer frente a estos casos, se debe utilizar hasExt en lugar de basarse en comprobar si ext está vacío o no.

SplitVolume()

static void wxFileName::SplitVolume( const wxString & fullpath, wxString * volume, wxString * path, wxPathFormat format = wxPATH_NATIVE )

Divide la ruta completa dada en la parte del volumen (que puede estar vacía) y la parte de la ruta pura, que no contiene ningún volumen.

StripExtension()

static wxString wxFileName::StripExtension(const wxString & fullpath)

Elimina la extensión del archivo.

Esta función hace más que simplemente eliminar todo lo que hay después del último punto de la cadena; por ejemplo, devolverá la cadena ".vimrc" sin cambios, ya que la parte que sigue al punto no es una extensión, sino el nombre del archivo en este caso. Se puede utilizar wxString::BeforeLast() para obtener realmente sólo la parte anterior al último punto (pero hay que tener en cuenta que esa función devuelve una cadena vacía si no hay ningún punto, a diferencia de esta función, que devuelve el nombre completo sin cambios en este caso).

Parámetros
fullname
Ruta del archivo, incluyendo el nombre y, opcionalmente, la extensión.
Valor de retorno

Ruta del archivo sin extensión.

Touch()

bool wxFileName::Touch() const

Establece las horas de acceso y modificación al momento actual.

URLToFileName()

static wxFileName wxFileName::URLToFileName(const wxString & url)

Convierte una URL en un nombre de archivo bien formado.

La URL debe utilizar el protocolo de archivo. Si la URL no utiliza el protocolo de archivo, es posible que el objeto wxFileName no sea válido o no exista.

Operadores

operator!=(()

bool wxFileName::operator!=(const wxFileName & filename) onst

Devuelve verdadero si los nombres de archivo son diferentes.

La cadena filename se interpreta como una ruta en el formato de nombre de archivo nativo.

operator!=(()

bool wxFileName::operator!=(const wxString & filename) const

Devuelve verdadero si los nombres de archivo son diferentes.

La cadena filename se interpreta como una ruta en el formato de nombre de archivo nativo.

operator=(()

wxFileName& wxFileName::operator=(const wxFileName & filename)

Asigna el nuevo valor a este objeto de nombre de archivo.

operator=(()

wxFileName& wxFileName::operator=(const wxString & filename)

Asigna el nuevo valor a este objeto de nombre de archivo.

operator==(()

bool wxFileName::operator==(const wxFileName & filename) const

Devuelve verdadero si los nombres de archivo son iguales.

La cadena filename se interpreta como una ruta en el formato de nombre de archivo nativo.

operator==(()

bool wxFileName::operator==(const wxString & filename) const

Devuelve verdadero si los nombres de archivo son iguales.

La cadena filename se interpreta como una ruta en el formato de nombre de archivo nativo.