次のコードを使用して、QFileInfo を使用して特定のディレクトリに書き込めるかどうかを判断しています。
QFileInfo dinfo(dirname);
if (dinfo.exists())
valid = dinfo.isWritable()
残念ながら、Vista 64 で現在のユーザーのデスクトップのパスを渡すと、次のようになります。
C:\Users\USERNAME\Desktop
QFileInfo::isWritable() は false を返します。ただし、別のディレクトリ (C:\Temp など) を渡すと、true が返されます。5555 (誰にも書き込み不可) であった QFileInfo オブジェクトからディレクトリのアクセス許可を要求しました。このコードは、Windows XP を含む他のプラットフォームで期待どおりに機能します。ここで何が起こっているのか、誰にもアイデアがあります。
参考までに、チェックを外すと、実際にファイルをその場所に問題なく保存できます。