2010-06-11 17 views
15

Ich bin ein Qt Anfänger und nur mit dem Problem stecken geblieben. Ich suche nach einer Datei SomePath/NewDirectoryA/NewFile.kml (NewFile.kml wird die einzige Datei in NewDirectoryA, mit diesem Verzeichnis nur Semantik im Projekt zu halten).Wie erstelle ich eine neue Datei in Qt

Wenn SomePath/NewDirectoryA/NewFile.kml vorhanden ist, werde ich es in meinem Code verwenden und wenn es nicht existiert, dann muss ich es erstellen. Wenn diese Datei nicht existiert, existiert dieses Verzeichnis auch nicht in SomePath. Wenn ich nur eine Datei erstellen muss, kann ich QFile verwenden und es im ReadWrite- oder WriteOnly-Modus öffnen.

Aber das Problem ist, ich muss die Datei mit dem Verzeichnis selbst erstellen. Ich versuchte mit QFile mit Dateiname SomePath/NewDirectoryA/NewFile.kml, aber es hat nicht funktioniert. Bitte schlagen Sie mir einen Weg vor, wie ich eine neue Datei (NewFile.kml) in einem neuen Verzeichnis (NewDirectorA) an einem bestimmten Ort (SomePath) erstellen kann.

Antwort

33

Bool QFile::open (Openmode-Modus) [virtuellen]

[...]

Hinweis: Writeonly oder Lese-Schreib-Modus , wenn die betreffende Datei nicht bereits vorhanden sind, diese Funktion wird versuchen, erstellen Sie eine neue Datei vor dem Öffnen.

caveat Qt für Dateierstellung

Platform Specific Issues

Dateiberechtigungen werden unterschiedlich auf Unix-ähnlichen Systemen und von Windows behandelt. In einem nicht beschreibbaren Verzeichnis auf Unix-ähnlichen Systemen können Dateien nicht erstellt werden. Dies ist nicht immer der Fall unter Windows, wo für Instanz das 'Eigene Dateien' Verzeichnis normalerweise nicht beschreibbar ist, aber es immer noch möglich ist, Dateien darin zu erstellen.

Verzeichnisse werden mit

erstellt

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

ein Unterverzeichnis dirName genannt erstellt.

und

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

Erzeugt den Verzeichnispfad dirpath.

Die Funktion erstellt alle übergeordneten Verzeichnisse, die zum Erstellen des Verzeichnisses erforderlich sind.

+1

kann ich keine Datei mit allen erforderlichen übergeordneten Verzeichnissen erstellen? –

Verwandte Themen