使用以下代码删除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,我不明白为什么。此外,没有例外。
答案 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();
}
}