2

Qtでアプリケーションを開発しています。/ usr / share/applicationsの場所にファイルを作成する必要があります。以下は私のコードです

  QDir::setCurrent("/usr/share/applications");
  QFile launcherFile;
  launcherFile.setFileName("aptana.desktop");
  int status = launcherFile.open(QIODevice::WriteOnly | QIODevice::Text);
  QTextStream stream(&launcherFile);
  stream<<"Create file";
  launcherFile.close();

デバッグ中にエラーは発生しませんが、ファイルも作成されません。私がログインしているユーザーにはこのフォルダーにアクセスする権限がないため、これは特権の問題だと思います。Synaptic Managerのような他のアプリケーションが、アプリケーションに進む前に管理者パスワードの入力を求めるのを見てきました。同様に、パスワードを要求するダイアログボックスをポップアップして、rootユーザーとしてファイルを作成するためのクレデンシャルを取得できる方法はありますか?この状況に取り組むために他にどのような方法がありますか?

4

1 に答える 1

0

ルート権限を要求して何かを行うという一般的な問題へのアプローチを見つけました。Dio3 は system() を呼び出し、パスワードを cmd レベルに渡します。. 「システムを介してファイルを読み取り、QT-API を満足させる方法についてはわかりませんが、その方法でファイルのアクセス許可を変更することはできます...しかし、これを深刻なファイルに対して行うすべての人は、セキュリティの悪夢に見舞われるはずです :)

于 2012-04-29T16:50:05.700 に答える