web-dev-qa-db-ja.com

絶対パスを使用したQDir mkdir

Qtでdirを作成するのに問題があります。ドキュメントのディレクトリにディレクトリを作成したいので、次のようなものを作成します。

QString path("C:/Users/Me/Documents/MyApp/profiles/");
Qdir dir = QDir::root();
dir.mkdir(path);

しかし、それはうまくいきません!セパレーターの「/」と「\」を使用してテストしましたが、2つのケースでは機能しません。

どうすればディレクトリを作成できますか?

ありがとうございました。

12
Guillaume

_QDir::mkpath_をdir.mkpath(path);として使用してみてください

13
Dcow

あなたはこれを行うことができます:

QDir dir(path);
if (!dir.exists()){
  dir.mkdir(".");
}
31
yerlilbilgin

QDir dir = QDir::root()は、ルートを指すように構成されたQDirのインスタンスを作成し、その設定をdirにコピーします。余分なコピーとコードを回避するには、QDir dir(QDir::root);を使用できます。 Windowsでは、システムドライブのルート(通常は_C:\_)を指します。

dir.mkdir(path);は、現在構成されているディレクトリ(ルート)にpathという名前のサブディレクトリを作成しようとします。このメソッドは、フルパスではなく単一のディレクトリ名を想定しています。また、チェックする必要のあるboolの結果も返します。

dir.mkpath(path) を呼び出して、指定されたサブディレクトリと、それにつながるすべての必要な親ディレクトリを作成しようとします。この場合も、結果をチェックして、成功したかどうかを確認する必要があります。

4
Arnold Spence

新しいディレクトリの作成方法が説明されている次のリンクを確認してください。

http://www.qtcentre.org/threads/19253-QDir-mkpath

http://www.qtforum.org/article/2210/qdir.html

http://www.developer.nokia.com/Community/Wiki/How_to_use_QDir_in_Qt

0
shofee