2011-07-25 9 views
1

ディレクトリの存在をチェックする際に問題があります。 iは、ユーザ入力(例えばにQLineEdit)からのパスを取ると、ディレクトリが存在するかどうか、ユーザーが「K:\」のパスを指定した場合の確認(k個のドライブがまったく存在しない)私のコードは、このQDir :: existsは、無効なディレクトリに対してtrueを返します。

QDir tmp("K:\\"); 
if(tmp.exists()) 
    return true; 
else 
    return false; 

ようになりドライバ文字 "K"がマップされていないので、理想的にはfalseを返すべきですが、残念ながら常に真を返します。または ディレクトリの存在を確認する正しい方法は何ですか?

+2

QDirドキュメントでは、\\の代わりに/を使用するように指定しています。ファイリングシステムを含む各デバイスのルートディレクトリのリストを提供する静的関数drives()を試し、k:がリストされているかどうか確認してください。 –

+0

ありがとう、これで試してみましょう... – maxchirag

答えて

0

つの提案:

  1. tmp.makeAbsoluteを試してみてください()

  2. 問題が解決しない場合は、QDir TMPを代入してみてください

  3. ( "K:/"); (DO/Windowsバックスラッシュの代わりにUnixスラッシュ)。

+0

makeAbsolute()、同様にtrueを返します。;--( – maxchirag

関連する問題