Java重命名旧目录或删除它以创建一个新目录

时间:2012-10-31 20:06:24

标签: java directory

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

1 个答案:

答案 0 :(得分: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);
}