我使用 curlftpfs 从本地网络安装了一个 ftp 文件夹。
curlftpfs ftp://192.168.100.214/ ftp_mount/
然后我试图folder_name_
在 qt 程序中迭代该文件夹并在 QTableWidgettable_
中以这样的代码每秒打印一次它的内容
void Class::PrintContains(QString &directory_name) {
QString absolute_path;
auto directory = QDir(directory_name);
if (directory.entryList(QDir::AllEntries | QDir::NoDotAndDotDot).empty()) {
table_->setCellWidget(0, 0, new QLineEdit("Folder is empty!"));
return;
}
QDirIterator it(directory_name, QDir::AllEntries | QDir::NoDotAndDotDot,
QDirIterator::Subdirectories);
absolute_path = it.path();
int i = 0;
while (it.hasNext()) {
absolute_path = it.next(); // skip directory_name in output
table_->setCellWidget(i++, 0, new QLineEdit(absolute_path));
}
}
void Class::TimerUpdate() {
table_->clearContents();
PrintContains(folder_name_);
}
当与 ftp 的连接消失时,就会出现此问题。如果网络电缆被拔出,程序就会挂起。更重要的是,据我了解,整个文件系统挂起,直到连接恢复。如何在我的系统中处理此类行为?如果这很重要,我正在使用 20.04.1-Ubuntu,c++11