Я не совсем уверен, содержит ли заголовок то, что я хочу спросить, вот оно:
Я только что сделал свое первое настольное приложение, которое использует XML-файл для хранения данных. Файл XML хранится где-то в C: / Users / myname / Documents / adjsklf / asdjfklasd / …. на моей собственной машине.
Как мне создать этот файл в определенном месте C: /Users/theirname/Documents/myAppName/data.xml? Или, более конкретно, как я могу получить имя файла «их имя»? Для компьютеров с несколькими пользователями, как я могу получить имя файла, который принадлежит пользователю, который на самом деле использует приложение?
Кроме того, когда я впервые запустил это приложение, я не думал о его развертывании. Поэтому я создал явный конструктор класса dataManipulation, который манипулирует всеми данными в моем XML-файле. Что происходит, когда моя программа запускается, она выполняет MainWindow, которая в то же время создает мой объект dataManipulation с нужным мне путем. Однако, поскольку теперь у меня есть несколько друзей, которые хотят попробовать это приложение, я должен быть в состоянии определить, существует ли файл первым, используя путь, который я упоминал ранее. Какой лучший способ достичь этого?
Спасибо вам большое!
использование QStandardPaths :: writableLocation.
Есть много способов выполнить проверку открытия файла. Если вы хотите сделать это как в Qt, взгляните на QFile и сделайте то же самое. В конструкторе он только устанавливает путь, но файл открывается только в QFile::open
и его возвращаемое значение указывает, было ли оно успешно открыто. Вы можете создать init()
метод в вашем классе манипулирования данными, проверьте его возвращаемое значение и покажите сообщение пользователю при необходимости.
Других решений пока нет …