渣渣辉的gravatar头像
渣渣辉2018-05-16 10:45:18

java如何删除tomcat上传文件的信息?

做的是上传文件的功能。现在我已经根据ID实现了上传删改查的功能。我的上传位置是在tomcat文件夹里,即:当我上传一个文件时,则在数据库和tomcat里会同时出现同一个文件。问题:在删除的时候,只能够删除到数据库的文件,却不能删除到在tomcat里的文件,请问怎么在删除数据库某信息时,也删除tomcat里的信息?

所有回答列表(5)
sunjiyun26的gravatar头像
sunjiyun26 LV85月17日

找到路径,然后调用file的删除

评论(2)最佳答案
costlyfish的gravatar头像
costlyfish LV15月25日

在编写删除数据库某信息代码的时候,同时在写一段删除tomcat里面信息的代码。删除tomcat的文件时,需要先找到该文件的路径。

码出奇迹的gravatar头像
码出奇迹 LV85月25日

你可以先删除数据库的文件,在根据路径删除tomcat里的文件,异步的话,代码顺讯挨着就可以,当然也可以同步

guoyulong77127的gravatar头像
guoyulong77127 LV56月11日

数据写到数据库的时候要存一个在tomcat存储的路径,然后在删除数据库的时候也删除tomcat,代码给你写好了。如下:

/**

* 删除目录及目录下的文件

* @param dirName 被删除的目录所在的文件路径

* @return 如果目录删除成功,则返回true,否则返回false

*/

public static boolean deleteDirectory(String dirName) {

String dirNames = dirName;

if (!dirNames.endsWith(File.separator)) {

dirNames = dirNames + File.separator;

}

File dirFile = new File(dirNames);

if (!dirFile.exists() || !dirFile.isDirectory()) {

log.info(dirNames + " 目录不存在!");

return true;

}

boolean flag = true;

// 列出全部文件及子目录

File[] files = dirFile.listFiles();

for (int i = 0; i < files.length; i++) {

// 删除子文件

if (files[i].isFile()) {

flag = deleteFile(files[i].getAbsolutePath());

// 如果删除文件失败,则退出循环

if (!flag) {

break;

}

}

// 删除子目录

else if (files[i].isDirectory()) {

flag = deleteDirectory(files[i]

.getAbsolutePath());

// 如果删除子目录失败,则退出循环

if (!flag) {

break;

}

}

}

 

if (!flag) {

log.info("删除目录失败!");

return false;

}

// 删除当前目录

if (dirFile.delete()) {

log.info("删除目录 " + dirName + " 成功!");

return true;

} else {

log.info("删除目录 " + dirName + " 失败!");

return false;

}

}

渣渣辉的gravatar头像
渣渣辉 LV76月11日

多谢!

顶部客服微信二维码底部
>扫描二维码关注最代码为好友扫描二维码关注最代码为好友