首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何从Linux中删除远程Windows中的文件夹

如何从Linux中删除远程Windows中的文件夹
EN

Stack Overflow用户
提问于 2018-05-04 14:59:43
回答 4查看 1.5K关注 0票数 3

我正在本地(Linux)和远程Selenium节点(Windows)上运行自动化测试。我想删除一个在测试期间创建的文件夹,使用Java Runtime.getRuntime().exec。它在本地(Linux)上运行得很好,但我很难在Windows节点上找到如何做到这一点。以下是我的尝试:

代码语言:javascript
运行
复制
try {
    if (rBundle.getString("RUN_ON").equalsIgnoreCase("local")) // delete folder temp on local (Linux) - it works
        Runtime.getRuntime().exec("rm -rf " + System.getProperty("user.home") + "/Temp");
    else // delete folder C:/Temp on remote Windows
        Runtime.getRuntime().exec("rm -rf IEUser@10.2.2.240/C/Temp");
        // Runtime.getRuntime().exec("rm -rf //10.2.2.240/C/Temp");
} catch (IOException e) {
    e.printStackTrace();
}

我尝试删除远程Windows上的文件夹C:/Temp,但没有任何成功。我没有任何例外,它穿过了那个街区。很明显,命令行错了,但我不知道。

任何帮助都很感激。谢谢

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2018-05-14 08:05:20

实现这一目标的另一种方法可能是直接从Web服务器通过向您的网站添加一个方法来清理资源。

例如:资源

然后,只需使用Java删除文件夹:

代码语言:javascript
运行
复制
// You could pass a parameter to the URL to know if it's windows  
// or linux and set the path accordingly
String path = "c:/temp";

Path directory = Paths.get(path);
    Files.walkFileTree(directory, new SimpleFileVisitor<Path>() {

        @Override
        public FileVisitResult visitFile(Path file,
                BasicFileAttributes attrs) throws IOException {
            Files.delete(file);
            return FileVisitResult.CONTINUE;
        }

        @Override
        public FileVisitResult postVisitDirectory(Path dir, IOException exc)
                throws IOException {
            Files.delete(dir);
            return FileVisitResult.CONTINUE;
        }
    });

最后,使用Selenium,在完成测试时导航到这个URL。

代码语言:javascript
运行
复制
driver.get("http://your_server/clean_resources");
票数 1
EN

Stack Overflow用户

发布于 2018-05-12 21:26:17

在Windows中尝试

代码语言:javascript
运行
复制
rmdir directoryname /s /q

根据文档https://learn.microsoft.com/en-us/windows-server/administration/windows-commands/rd

/s删除目录树(指定目录及其所有子目录,包括所有文件)。

/q指定静音模式。删除目录树时不提示确认。(请注意,只有在指定了/q时,/s才能工作。)

如何从Linux站运行这个Windows命令..。问得好

票数 1
EN

Stack Overflow用户

发布于 2018-05-13 02:23:43

最初是作为注释添加的,但为了获得更多的可见性,升级到了一个答案。

通过ssh在Windows服务器上执行rm命令。这将需要您在Windows上设置ssh服务器,cygwin看起来是最好的选择之一。一旦您让ssh服务器安装程序执行远程rm命令,就会使用ssh IEUser@10.2.2.240 "rm -rf /cygdrive/c/Temp"命令。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/50177855

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档