Как записать в текстовый файл на Windows C dirve с использованием Qt

#c #qt

#c #qt

Вопрос:

Я хочу записать файл на диск C в Windows, используя Qt c , что я пытаюсь

 QFile file("C:/key.txt");
if (!file.exists())
{
    file.open(QIODevice::WriteOnly | QIODevice::Text);
    file.write("0");
    file.close();
}
  

но на C ничего не было написано, я думаю, я должен предоставить ему права администратора, чтобы он мог записывать на диск C, но я искал и нашел QFile ::setpermissions
, но это тоже не решило проблему

, поэтому любая идея решить мою проблему, пожалуйста
, спасибо в Avdance

Комментарии:

1. Выполнили ли вы шаги, чтобы убедиться, что код внутри условия выполняется?

2. Вы должны проверить open write , удалось ли и.

3. да, функция выполнена, я попробовал ее D:/key.txt и это сработало, и файл был создан без проблем

4. да, конечно, проблема с разрешениями, как говорится в ответах.

5. Вы можете проверить логический успех на каждом шаге и получить код ошибки с помощью file.error()

Ответ №1:

Для записи необходимо запустить приложение с правами администратора C: . Для этого требуется обойти UAC. Для этого вставьте манифест:

 QMAKE_LFLAGS  = /MANIFESTUAC:"level='requireAdministrator' uiAccess='false'"
  

или вы можете настроить манифест своего приложения:

 <trustInfo xmlns="urn:schemas-microsoft-com:asm.v3">
  <security>
    <requestedPrivileges>
      <requestedExecutionLevel level="requireAdministrator" uiAccess="false"/>
    </requestedPrivileges>
  </security>
</trustInfo> 
  

Комментарии:

1. где я могу найти этот файл, пожалуйста

Ответ №2:

Для записи непосредственно на диск C: требуются права администратора. Либо измените папку, либо запустите приложение от имени администратора.