2010-06-11 15 views
15

io sono un principiante Qt e appena rimasto bloccato con il problema. Sto cercando un file SomePath/NewDirectoryA/NewFile.kml (NewFile.kml sarà l'unico file in NewDirectoryA, avendo questa directory solo per mantenere la semantica nel progetto).Come creare un nuovo file in Qt

Se SomePath/NewDirectoryA/NewFile.kml esiste quindi userò nel mio codice e se non esiste, allora devo crearla. Se questo file non esiste, anche questa directory non esiste in SomePath. Quindi, se solo devo creare un file posso usare QFile e aprirlo in modalità ReadWrite o WriteOnly.

Ma il problema è che ho per creare il file con la directory stessa. Ho provato con QFile con il nome di file SomePath/NewDirectoryA/NewFile.kml ma non ha funzionato. Per favore suggeriscimi un modo in cui posso creare un nuovo file (NewFile.kml) in una nuova directory (NewDirectorA) in una determinata posizione (SomePath).

risposta

33

bool QFile::open (modalità openMode) [virtuale]

[...]

Nota: in modalità ReadWrite WriteOnly o, se il file in questione non lo fa già esiste, questo la funzione proverà a creare un nuovo file prima di aprirlo.

avvertimento di Qt per la creazione di file

Platform Specific Issues

I permessi dei file vengono gestiti in modo diverso su sistemi Unix-like e di Windows. In una directory non scrivibile su sistemi Unix, i file non possono essere creati. Questo non è sempre il caso di Windows, in cui, per esempio, la directory 'My Documents' di solito non è scrivibile, ma è ancora possibile creare file in essa contenuti.

directory sono create con

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

Crea una sotto-directory chiamata nomedir.

e

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

Crea il dirPath percorso di directory.

La funzione creerà tutte le directory principali necessarie per creare la directory .

+1

non è possibile creare un file con tutte le directory principali necessarie? –