Я хочу создать приложение для Android с помощью Qt. Приложение должно иметь возможность запрашивать у пользователя целевой каталог (который может быть предоставлен приложением облачного хранилища), а затем создавать файлы в этой папке.
Пока я не узнаю, что нашел QDir , который позволяет получить доступ к каталогам и QFile, который можно использовать для чтения и записи существующих файлов, но я понятия не имею, как создавать новые файлы в папке, которая указана в качестве URI conten://.
Кто-нибудь знает, как этого можно достичь?
РЕДАКТИРОВАТЬ:
Это код, который показывает мою явно нерабочую попытку:
#include
#include
#include
#include
int main(int argc, char *argv[]) {
QApplication a(argc, argv);
auto dir = QFileDialog::getExistingDirectory(nullptr, "Path search");
QString results;
for (const auto &x: QDir(dir).entryInfoList())
if (x.fileName() == "t.save") {
auto f = QFile(x.canonicalFilePath());
f.open(QFile::WriteOnly);
results += "Existing File path: " + x.canonicalFilePath() + "\n";
results += "Open1 " + std::to_string(f.isOpen()) + "\n";
auto rc = f.write("Hallo Welt 2\n");
results += "Write1 " + std::to_string(rc) + "\n";
}
QFile f(QDir(dir).absoluteFilePath("text.txt"));
f.open(QFile::WriteOnly);
results += "New File path: " + QDir(dir).absoluteFilePath("text.txt") + "\n";
results += "Open2 " + std::to_string(f.isOpen()) + "\n";
auto rc = f.write("New File\n");
results += "Write2 " + std::to_string(rc) + "\n";
QTextEdit text;
text.setText(results);
text.show();
return QApplication::exec();
}
с создает этот вывод:
Existing File path: content://org.nextcloud.documents/tree/87ce9de8191bc01881198ccaeab3a015%2F3311/document/87ce9de8191bc01881198ccaeab3a015%2F11465
Open1 1
Write1 13
New File path: content:/org.nextcloud.documents/tree/87ce9de8191bc01881198ccaeab3a015%2F3311/document/87ce9de8191bc01881198ccaeab3a015%2F3311/text.txt
Open2 0
Write2 -1
Подробнее здесь: https://stackoverflow.com/questions/787 ... uri-folder
Qt Android создает файлы в папке content:// URI [закрыто] ⇐ Android
Форум для тех, кто программирует под Android
-
Anonymous
1720859113
Anonymous
Я хочу создать приложение для Android с помощью Qt. Приложение должно иметь возможность запрашивать у пользователя целевой каталог (который может быть предоставлен приложением облачного хранилища), а затем создавать файлы в этой папке.
Пока я не узнаю, что нашел QDir , который позволяет получить доступ к каталогам и QFile, который можно использовать для чтения и записи существующих файлов, но я понятия не имею, как создавать новые файлы в папке, которая указана в качестве URI conten://.
Кто-нибудь знает, как этого можно достичь?
РЕДАКТИРОВАТЬ:
Это код, который показывает мою явно нерабочую попытку:
#include
#include
#include
#include
int main(int argc, char *argv[]) {
QApplication a(argc, argv);
auto dir = QFileDialog::getExistingDirectory(nullptr, "Path search");
QString results;
for (const auto &x: QDir(dir).entryInfoList())
if (x.fileName() == "t.save") {
auto f = QFile(x.canonicalFilePath());
f.open(QFile::WriteOnly);
results += "Existing File path: " + x.canonicalFilePath() + "\n";
results += "Open1 " + std::to_string(f.isOpen()) + "\n";
auto rc = f.write("Hallo Welt 2\n");
results += "Write1 " + std::to_string(rc) + "\n";
}
QFile f(QDir(dir).absoluteFilePath("text.txt"));
f.open(QFile::WriteOnly);
results += "New File path: " + QDir(dir).absoluteFilePath("text.txt") + "\n";
results += "Open2 " + std::to_string(f.isOpen()) + "\n";
auto rc = f.write("New File\n");
results += "Write2 " + std::to_string(rc) + "\n";
QTextEdit text;
text.setText(results);
text.show();
return QApplication::exec();
}
с создает этот вывод:
Existing File path: content://org.nextcloud.documents/tree/87ce9de8191bc01881198ccaeab3a015%2F3311/document/87ce9de8191bc01881198ccaeab3a015%2F11465
Open1 1
Write1 13
New File path: content:/org.nextcloud.documents/tree/87ce9de8191bc01881198ccaeab3a015%2F3311/document/87ce9de8191bc01881198ccaeab3a015%2F3311/text.txt
Open2 0
Write2 -1
Подробнее здесь: [url]https://stackoverflow.com/questions/78741932/qt-android-create-files-in-content-uri-folder[/url]
Ответить
1 сообщение
• Страница 1 из 1
Перейти
- Кемерово-IT
- ↳ Javascript
- ↳ C#
- ↳ JAVA
- ↳ Elasticsearch aggregation
- ↳ Python
- ↳ Php
- ↳ Android
- ↳ Html
- ↳ Jquery
- ↳ C++
- ↳ IOS
- ↳ CSS
- ↳ Excel
- ↳ Linux
- ↳ Apache
- ↳ MySql
- Детский мир
- Для души
- ↳ Музыкальные инструменты даром
- ↳ Печатная продукция даром
- Внешняя красота и здоровье
- ↳ Одежда и обувь для взрослых даром
- ↳ Товары для здоровья
- ↳ Физкультура и спорт
- Техника - даром!
- ↳ Автомобилистам
- ↳ Компьютерная техника
- ↳ Плиты: газовые и электрические
- ↳ Холодильники
- ↳ Стиральные машины
- ↳ Телевизоры
- ↳ Телефоны, смартфоны, плашеты
- ↳ Швейные машинки
- ↳ Прочая электроника и техника
- ↳ Фототехника
- Ремонт и интерьер
- ↳ Стройматериалы, инструмент
- ↳ Мебель и предметы интерьера даром
- ↳ Cантехника
- Другие темы
- ↳ Разное даром
- ↳ Давай меняться!
- ↳ Отдам\возьму за копеечку
- ↳ Работа и подработка в Кемерове
- ↳ Давай с тобой поговорим...
Мобильная версия