我正在处理我正在处理的面板的问题,我正在处理的是当从一个版本的软件升级到另一个版本时,Windows机器上的旧开始菜单组仍然显示。我试图看看我是否可以先删除旧目录然后再创建新目录,但所有发生的事情都是旧的目录仍然存在。我真的不知道如何解决这个问题只是开始菜单组中的一个目录,以显示我删除或重命名旧天气。
这是我到目前为止删除旧系统变量的内容。这是我正在努力的事情,我知道它不完美,但任何帮助将不胜感激。如果您需要解释,我很乐意遵守。谢谢
if ( PrioGlobals.UPGRADE ){
oldm_txtGrpName.setText(PrioGlobals.StartMenuFolder);
}
if ( PrioGlobals.UPGRADE ){
String oldShortCutPath = PrioGlobals.cre.getShorcutDirectory();
String oldStartMenuGroupFolderPath = oldShortCutPath + File.separator + BrandStrings.WIN_FOLDER_NAME +
File.separator +oldm_txtGrpName.getText();
File oldStartmenu = new File(oldStartMenuGroupFolderPath);
if (oldStartmenu.exists())
{
oldStartmenu.delete();
}
else
oldStartmenu.delete();
}
答案 0 :(得分:2)
如果我正确阅读您的代码,oldStartmenu
是一个目录?在这种情况下,oldStartmenu.delete()
可能会失败,因为该目录不为空(请参阅File delete)在这种情况下,您需要以递归方式删除目录及其所有文件。
此时我建议包括commons-io FileUtils并使用其中一个目录实用程序,例如forceDelete或deleteDirectory
[更新]
将commons-io库添加到项目后,您将
// import FileUtils
import org.apache.commons.io.FileUtils;
// ...
if (oldStartmenu.exists())
{
FileUtils.deleteDirectory(oldStartmenu);
}