【问题标题】:how to delete an entire directory with Pyside2?如何使用 Pyside2 删除整个目录?
【发布时间】:2021-02-05 09:03:29
【问题描述】:

我有一个 QFileSystemModel,可以使用 QFileSystemModel.rmdir(index) 删除空目录。

有没有办法用 Pyside2 删除非空目录?

我可以shutil.rmtree()删除非空目录,但由于我使用Qt,我倾向于使用Qt方法。如果存在的话。

【问题讨论】:

  • 我从未使用过 QFileSystemModel,但看了一眼 rmdir 之后,我没有看到任何暗示它只删除空目录的东西。您确定不是目录中的一项权限不足的问题吗?
  • 我找到了解决办法:QDir.removeRecursively()
  • @g2m.agent QFileSystemModel 的rmdirQDir.rmdir() 相同:“rmdir() 成功的目录必须为空”。既然您已经解决了它,我建议您创建自己的答案并通过相关文档的链接来解释差异。

标签: pyqt5 qt5 pyside2


【解决方案1】:

我的解决方案在 QFileSystemModel 之外。采用 QDir.removeRecursively()

def del_folder(self, checked, index):
    if not index.isValid():
        return

    model = index.model()
    path = model.fileInfo(index).absoluteFilePath()
    dir1 = QtCore.QDir(path)
    dir1.removeRecursively() # remove all.

【讨论】:

    猜你喜欢
    • 2010-12-17
    • 1970-01-01
    • 1970-01-01
    • 2022-06-15
    • 2016-08-06
    • 2021-03-18
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多