2016-04-10 2 views
0

を開けません:C:\Users\Ms\Documents\L3\フォルダでqfileによりエラー:デバイスは、私が持っているコード

int actualSize = 8; 
QFile tableFile("C:\\Users\\Ms\\Documents\\L3\\table"+QString::number(actualSize)+".txt"); 
QTextStream in(&tableFile); 
QString oneLine; 
oneLine.append(in.readAll()); 
if(tableFile.exists()) 
{ 
    messageLabel->setText(oneLine); 
}else 
{ 
    messageLabel->setText("Not open"); 
} 

を、私は "table8.txt" ファイルを持っています。しかし、messageLabel(QLabel)は、「開かない」テキストを持ち、oneLineが空であり、tableFile.exists()が偽であり、警告/エラーが発生していません。

私は

QFile tableFile("table"+QString::number(actualSize)+".txt"); 

のように、相対パスを試してみました。しかし、私が思い付く方法のどれも良かったん。

+1

「open」メソッドの呼び出しはどこですか? –

+0

tableFile.open(QIODevice :: ReadOnly | QIODevice :: Text); 私はこの行を追加し、それは働いた、ありがとう – Supercat

答えて

0

すべてのQFile関連のパスには、/セパレータを使用できるはずです。 あなたがそれを読む前に、が終了したら、が終了しました。

int actualSize = 8; 
QFile tableFile("C:/Users/Ms/Documents/L3/table"+QString::number(actualSize)+".txt"); 
if(tableFile.exists() && tableFile.open(QIODevice::ReadOnly | QIODevice::Text)) 
{ 
    QTextStream in(&tableFile); 
    QString oneLine; 
    oneLine.append(in.readAll()); 
    messageLabel->setText(oneLine); 
    tableFile.close(); 
} else 
{ 
    messageLabel->setText("Not open"); 
} 
関連する問題