我无法删除Java中的文件(Windows 7)

时间:2013-06-07 13:34:16

标签: java windows-7

使用以下代码删除Windows 7中的文件时遇到一些问题:

    private static final String WIN_DIR_TEST = "D:"+File.separator+"Users"+File.separator+"u119255"+File.separator+"Desktop"+File.separator; 
    ...
    File file = null;
    FileWriter fileWriter = null;
    String localPath = WIN_DIR_TEST.concat("abc.degno");
    file = new File(localPath);
    fileWriter = new FileWriter(file, true);
    fileWriter.write("qwertyuiop\n");
    fileWriter.close();
    ftp.send(localPath, distantPath);
    file.delete();

这最后一行总是返回false,我不明白为什么。此外,没有例外。

5 个答案:

答案 0 :(得分:1)

尝试像这样处理异常处理:

try {
    if (file.delete()) {
        System.out.println(file.getName() + " is deleted!");
    } else {
        System.out.println("Delete operation is failed.");
    }
} catch (Exception e) {
    e.printStackTrace();
}

答案 1 :(得分:1)

Java经常出现问题写入直接位于C:Hard Disk(或安装Win的磁盘)的文件。 将文件移动到C:。上的子文件夹。

答案 2 :(得分:1)

尝试使用file.deleteOnExit()代替file.delete()

如果可行,那么代码中的某些内容仍然可以处理该文件。

答案 3 :(得分:0)

这很简单,因为从代码中可以看出“文件”总是等于null :)你在哪里初始化文件变量?

答案 4 :(得分:0)

删除包含其他文件的文件夹时删除了问题。

所以我最终以递归方式删除了该文件夹。

    private void deletedFile(File file)
{
    if ( file.isFile() )
    {
        file.delete();
    }
    else
    {
        File[] subFiles = file.listFiles();

        for ( File subFile : subFiles )
        {
            deletedFile(subFile);
        }
        file.delete();
    }
}