tutorial proyecto manejo español creator crear archivos archivo abrir qt file qfile

proyecto - qt interface tutorial



¿Cómo crear un nuevo archivo con ruta completa en Qt? (2)

Soy un principiante de Qt y me quedé estancado con el problema. Estoy buscando un archivo SomePath/NewDirectoryA/NewFile.kml ( NewFile.kml será el único archivo en NewDirectoryA , teniendo este directorio solo para mantener la semántica en el proyecto).

Si SomePath/NewDirectoryA/NewFile.kml , lo SomePath/NewDirectoryA/NewFile.kml en mi código y, si no existe, tendré que crearlo. Si este archivo no existe, entonces este directorio tampoco existe en SomePath . Entonces, si solo tengo que crear un archivo, puedo usar QFile y abrirlo en modo ReadWrite o WriteOnly.

Pero el problema es que tengo que crear el archivo con el propio directorio.
QFile con QFile con el nombre de archivo SomePath/NewDirectoryA/NewFile.kml pero no funcionó.

Por favor, sugiérame una forma en la que pueda crear un nuevo archivo (NewFile.kml) en un nuevo directorio (NewDirectorA) en una ubicación determinada (SomePath).


bool QFile::open (modo OpenMode) [virtual]

[...]

Nota: En el modo WriteOnly o ReadWrite, si el archivo relevante aún no existe, esta función intentará crear un nuevo archivo antes de abrirlo.

La advertencia de Qt para la creación de archivos.

Problemas específicos de la plataforma

Los permisos de archivos se manejan de manera diferente en sistemas similares a Unix y Windows. En un directorio no grabable en sistemas similares a Unix, los archivos no se pueden crear. Este no es siempre el caso en Windows, donde, por ejemplo, el directorio ''Mis documentos'' generalmente no se puede escribir, pero aún es posible crear archivos en él.

Los directorios se crean con

bool QDir::mkdir (const QString & dirName) const

Crea un subdirectorio llamado dirName.

y

bool QDir::mkpath (const QString & dirPath) const

Crea la ruta del directorio dirPath.

La función creará todos los directorios principales necesarios para crear el directorio.


AFAIK no es posible crear el archivo y el directorio directamente con QFile . Primero debe crear el directorio ( QDir::mkpath creará la ruta completa) y luego el archivo ( QFile::open ).

QString path("SomePath/NewDirectoryA/"); QDir dir; // Initialize to the desired dir if ''path'' is relative // By default the program''s working directory "." is used. // We create the directory if needed if (!dir.exists(path)) dir.mkpath(path); // You can check the success if needed QFile file(path + "NewFile.kml"); file.open(QIODevice::WriteOnly); // Or QIODevice::ReadWrite