1

我正在处理的面板有问题,我正在处理的是每当从一个软件版本升级到另一个版本时,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();
           }        
4

1 回答 1

2

如果我正确阅读了您的代码,oldStartmenu是目录吗?在这种情况下,oldStartmenu.delete()可能会因为目录不为空而失败(请参阅File delete)在这种情况下,您需要递归地删除目录及其所有文件。

在这一点上,我建议包括 commons-io FileUtils并使用目录实用程序之一,例如forceDeletedeleteDirectory

[更新]

将 commons-io 库添加到项目后,您将

// import FileUtils
import org.apache.commons.io.FileUtils;

// ...

if (oldStartmenu.exists())
{
    FileUtils.deleteDirectory(oldStartmenu);
}
于 2012-10-31T20:32:20.583 回答