0

我使用 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

4

0 回答 0