LAN 네트워크를 통해 전송해야하는 QFile
이 있습니다. 이를 위해, 나는 수행하여 QByteArray
에 QFile
변환 :QFile to QByteArray 저장 파일 이름
//! [Inside a QTcpSocket class]
// Get the file name using a QFileDialog
QFile file(QFileDialog::getOpenFileName(NULL, tr("Upload a file")));
// If the selected file is valid, continue with the upload
if (!file.fileName().isEmpty) {
// Read the file and transform the output to a QByteArray
QByteArray ba = file.readAll();
// Send the QByteArray
write(ba);
}
내가 그것을받을 때, 나는 사용하여 쉽게 변환 할 수 있습니다 : 그러나
void saveFile(QByteArray ba) {
// Ask the user where he/she wants to save the file
QFile file(QFileDialog::getSaveFileName(NULL, tr("Save file")));
// Check that the path is valid
if (!file.fileName().isEmpty()) {
// Write contents of ba in file
file.write(ba);
// Close the file
file.close();
}
}
, 내가 알고 싶습니다 파일 이름 (예 : Document.docx
) 또는 사용자가 정확히 어떤 파일 형식을 받았는지 알지 못하도록 확장명을 알고 있어야합니다.
파일을 업로드 할 때 수신기 사용자에게 파일을 저장하라는 메시지가 표시되는 것이 가장 이상적입니다. 예를 들어 :
는- 보낸 사람은 그/그녀가
Document1.docx
수신기의 결정을 바탕으로 - ,
Document1.docx
는 수신기의 워크 스테이션에 저장됩니다 저장하고자하는 경우Document1.docx
- 수신기는 메시지가 표시됩니다 보냅니다.
그래서, 내 질문은 : QFile
로 QByteArray
로 변환하고 (다른 컴퓨터에서) 다시 전환 할 때의 이름과 QFile
의 확장을 알 수있는 방법이 있습니까?
고맙습니다! 필자는 내용이있는 것과 파일 정보가있는 두 개의 바이트 배열을 만들어서이 문제를 해결했습니다. 두 개의 QByteArrays를 허용하도록 saveFile 함수를 변경했습니다. –