我陷入了困境。
String tmpfolder = System.getProperty("java.io.tmpdir");
\\this is the path C:\Users\biraj\AppData\Local\Temp\
tmpfolder = tmpfolder.replace("\\", "\\\\");
Runtime.getRuntime().exec("cmd /c del "+tmpfolder+"IEDriver.dll /f /s /q");
当我运行此代码时,它不会删除IEDriver.dll
文件。
但是当我给出临时文件夹的静态路径时,它会删除该文件:
Runtime.getRuntime().exec("cmd /c del C:\\Users\\biraj\\AppData\\Local\\Temp\\IEDriver.dll /f /s /q");
任何人都可以向我解释为什么第一个代码不起作用?这有什么不对?
答案 0 :(得分:1)
问题是您在第二行中将文字\
更改为文字\\
。
当我们编写代码时,我们在字符串中使用\\
来表示程序的文字\
,但您的tmpfolder
变量中已包含正确的文字\
。< / p>
如果你删除以下一行,它应该有用。
tmpfolder = tmpfolder.replace("\\", "\\\\");
理解差异的最简单方法是打印您构建的字符串,以及文字字符串和直观地比较它们。
System.out.println("cmd /c del "+tmpfolder+"IEDriver.dll /f /s /q");
System.out.println("cmd /c del C:\\Users\\biraj\\AppData\\Local\\Temp\\IEDriver.dll /f /s /q")
另一个可能的问题是你需要改变
"IEDriver.dll /f /s /q"
到
"\\IEDriver.dll /f /s /q"
当然,视觉比较肯定会回答这个问题。