无法删除包含文件

时间:2016-12-09 15:50:05

标签: robotframework

我在Windows 10上使用RIDE在java平台上使用Robotframework 3.0。我试图使用操作系统库中的命令,如"Empty Directory and Remove Directory"。执行这些命令后,我收到此错误:"OSError: unlink(): an unknown error occurred: Directorypath"Directory does not exist

这是包含我使用的所有组合和我收到的输出的列表

List of commands used on RF

我的问题是:
1.使用Remove Directory recursive = True;为什么此命令如果有文件则无法删除该文件夹。我能够使用相同的命令而没有任何错误 2.使用Empty目录,为什么我收到目录不存在的错误。我知道该目录不可用。我假设如果目录不可用,此命令将忽略。如果我的假设是错的,那么我该如何解决呢。 我需要有关失败场景的帮助。

1 个答案:

答案 0 :(得分:0)

Empty Directory确实检查目标目录是否存在(发生在库中的私有关键字_list_dir中)。

如果您想要调用它,并且如果dir不存在则不会失败,请将其包围在Run Keyword And Ignore Error中:

${rc}  ${msg}    Run Keyword And Ignore Error    Empty Directory  ${target dir}
Run Keyword If   '${rc}' == 'FAIL'     Handle Failed Deletion As You Like

至于1),当您使用Remove Directory呼叫recursive=True时,它将/应该没有问题删除目录及其中的任何文件/子目录。
您看到的错误 - OSError: unlink() ...由python的shutil模块传播,该模块执行实际的删除操作。可能有多种原因 - 您运行测试的帐户无权删除该特定文件(最有可能),该文件与删除操作并行添加(不太可能,例外情况是持有的dir无法取消链接)或类似的原因。尝试使用不同的路径,而不是Windows用户的临时目录,但是您确定可以完全访问和控制的内容。