[gelöst]Datei von QUrl existiert nicht (mit QFile::exists())

Alles rund um die Programmierung mit Qt
Antworten
hakaishi
Beiträge: 62
Registriert: 8. Dezember 2009 18:25

[gelöst]Datei von QUrl existiert nicht (mit QFile::exists())

Beitrag von hakaishi »

Hallo liebes Forum,

ich habe ein kleines Problem. Ich lese die Daten von einem QMimeData Objekt aus und mache dann folgendes:

Code: Alles auswählen

QUrl url = QUrl().fromEncoded(mimeData->data("text/uri-list"));
QString str = url.toLocalFile();
qDebug() << url.isLocalFile(); //returns true
QStringList files = str.split("\n",QString::SkipEmptyParts);
qDebug() << QFile(files.first()).exists(); //nur zu Testzwecken mit first(). returns false
Interessant ist, das die Datei existiert und wenn ich qDebug()<<QFile("PFAD_ZUR_DATEI").exists();, also den exakt gleichen String direkt angebe, true zurückgegeben wird.

Weiß jemand, wie ich einen "gültigen" String bekomme, mit dem ich arbeiten kann? (url.path() habe ich auch schon probiert)


Viele Grüße, Hakaishi
Zuletzt geändert von hakaishi am 28. September 2012 19:44, insgesamt 1-mal geändert.
franzf
Beiträge: 3114
Registriert: 31. Mai 2006 11:15

Re: Datei von QUrl existiert nicht (mit QFile::exists() )

Beitrag von franzf »

Höh? Sind jetzt mehrere URLs enthalten oder nur ein? Wenn mehrere warum konvertierst du VOR dem splitten zu einem localFile, brichst das dann mit "\n" in mehrere um?
Versuch doch das QByteArray erstmal richtig zu interpretieren (wie viele Dateien, etc.) bevor du an die urls rangehst.
Den Rest sagt dir die Doku:
bool QUrl::isLocalFile () const
Returns true if this URL is pointing to a local file path. A URL is a local file path if the scheme is "file".
Note that this function considers URLs with hostnames to be local file paths, even if the eventual file path cannot be opened with QFile::open().
Eine Datei existiert nur, wenn sie auch geöffnet werden kann, denke ich mal ;)
hakaishi
Beiträge: 62
Registriert: 8. Dezember 2009 18:25

Re: Datei von QUrl existiert nicht (mit QFile::exists() )

Beitrag von hakaishi »

franzf hat geschrieben:Höh? Sind jetzt mehrere URLs enthalten oder nur ein? Wenn mehrere warum konvertierst du VOR dem splitten zu einem localFile, brichst das dann mit "\n" in mehrere um?
Versuch doch das QByteArray erstmal richtig zu interpretieren (wie viele Dateien, etc.) bevor du an die urls rangehst.
Den Rest sagt dir die Doku:
bool QUrl::isLocalFile () const
Returns true if this URL is pointing to a local file path. A URL is a local file path if the scheme is "file".
Note that this function considers URLs with hostnames to be local file paths, even if the eventual file path cannot be opened with QFile::open().
Eine Datei existiert nur, wenn sie auch geöffnet werden kann, denke ich mal ;)
Die Dateien existieren natürlich. Auch der QString scheint mir exakt der gleiche zu sein. Ja, es sind u.U. mehrere Dateien. Zu beginn, habe ich ja diesen QByteArray. Diesen muss ich ja erst einmal in QUrl einlesen. Dann habe ich also mehrere Dateien in der QUrl. Wie soll ich jetzt an die einzelnen Dateien kommen, wenn ich sie nicht erst konvertiere?
Dateianhänge
Bildschirmfoto.png
Bildschirmfoto.png (121.45 KiB) 4868 mal betrachtet
Christian81
Beiträge: 7319
Registriert: 26. August 2004 14:11
Wohnort: Bremen
Kontaktdaten:

Re: Datei von QUrl existiert nicht (mit QFile::exists() )

Beitrag von Christian81 »

Eine URL kann nicht mehrere Dateien haben - also erst splitten, dann Url, dann lokaler Pfad und nicht andersrum!
MfG Christian

'Funktioniert nicht' ist keine Fehlerbeschreibung
hakaishi
Beiträge: 62
Registriert: 8. Dezember 2009 18:25

Re: Datei von QUrl existiert nicht (mit QFile::exists() )

Beitrag von hakaishi »

Manchmal kann die Lösung so einfach sein... ^^"

Code: Alles auswählen

QStringList files;
foreach(QUrl url, mimeData->urls())
files << url.toLocalFile();
Viele Grüße, Hakaishi
Antworten