如何使用 Pyside2 删除整个目录?
Posted
技术标签:
【中文标题】如何使用 Pyside2 删除整个目录?【英文标题】:how to delete an entire directory with Pyside2? 【发布时间】:2021-02-05 09:03:29 【问题描述】:我有一个 QFileSystemModel,可以使用 QFileSystemModel.rmdir(index) 删除空目录。
有没有办法用 Pyside2 删除非空目录?
我可以shutil.rmtree()删除非空目录,但由于我使用Qt,我倾向于使用Qt方法。如果存在的话。
【问题讨论】:
我从未使用过 QFileSystemModel,但看了一眼 rmdir 之后,我没有看到任何暗示它只删除空目录的东西。您确定不是目录内中的一项权限不足的问题吗? 我找到了解决办法:QDir.removeRecursively() @g2m.agent QFileSystemModel 的rmdir
与QDir.rmdir()
相同:“rmdir() 成功的目录必须为空”。既然您已经解决了它,我建议您创建自己的答案并通过相关文档的链接来解释差异。
【参考方案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.
【讨论】:
以上是关于如何使用 Pyside2 删除整个目录?的主要内容,如果未能解决你的问题,请参考以下文章