2013-06-16 1 views
2

좋은 자습서가 있습니까 아니면 누가 QFile으로 파일을 처리하는 과정을 안내해 줄 수 있습니까? 을 처리해야하며 적절한 오류가 발생하고 최소한 오류를 확인해야합니다. 이 파일을 읽을 꽤 premitive 방법입니다 같은 느낌, 그러나QFile을 사용하여 파일을 올바르게 읽고 쓰는 중 (오류 처리 등)?

QFile f("/home/skamah/documents/myfile.txt"); 
if (!f.exists()) 
    QMessageBox("File error", "File doesn't exist.").show(); 
QTextStream in(&file); 
QString content = in.readAll(); 

;

은 지금까지 나는이 코드를 사용하고 qt doc에서 나는 어떤 오류가 발생했는지에 따라 int 값을 반환하는 error()이라는 메서드가 있음을 알게되었습니다. 사용해야합니까? 그리고 어떤 종류의 오류를 발생시키는 규칙이 있습니까?

답변

1

Qt 설명서가 가장 좋습니다. 읽은 경우 error() 메서드는 int가 아닌 QFile::FileError 값을 반환합니다.

각각의 방법 (open, read 등)에는 성공했는지 여부를 판단 할 수있는 방법이 있습니다. 메서드의 설명서에 설명되어 있습니다. 기본 규칙 : 모든 것이 잘 작동하는지 확인하려면 각 메소드 호출 후에 확인해야합니다. 무언가 잘못되었다고 판단한 후 호출 코드 나 사용자에게 알리는 방법과 제공 할 추가 정보를 선택해야합니다. 예를 들어, 예외를 사용할 수 있습니다.

그러나 QFile에는 오류의 실제 원인을 파악할 수있는 기능이 없습니다. 예를 들어 디스크에 공간이 없기 때문에 파일을 쓸 수 없는지 여부를 판별 할 수 없습니다. Qt는 내부적으로 예외를 사용하지 않으므로 각 호출 후에 수동으로 오류를 확인해야합니다.

+1

글쎄, QFile :: FileError는 int 값을 가진 열거 형이 아닙니다. 그것이 문서에서 말하는 것입니다. 문서에서 너무 유용한 것을 찾지 못했지만, 다시 읽어야 겠지요. : P 그래서 모든 것이 좋든 나쁘 든간에 항상 내 자신의 수표를 구현해야합니다. –

+1

예, 그렇습니다. 한 번에 모든 것을 검사 할 수있는 내장 된 기능은 없습니다. –

관련 문제