请问用java 如何实现逻辑删除文件?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了请问用java 如何实现逻辑删除文件?相关的知识,希望对你有一定的参考价值。

我在做一个删除磁盘文件的程序,里面有删除、还原功能,可以用先删除的文件,然后再还原,但用java删除的文件不在回收站中,请问该用什么方法实现java的逻辑删除?

把文件名用数据库管理起来,

先确定某个目录下放置你逻辑删除的文件,

每次删除文件把原路径和删除后的保存的路径放置到数据库,

当你需要还原的时候通过查询数据库再拷回去就可以了.

当然你想做直接删除也可以,不放入数据库直接删就行了

事实上windows 也是这样管理的,删除时移动到回收站而已,不过比这个有效率多了.
参考技术A 可以直接定义一个逻辑上的回收站
凡是通过你程序删除的都放你自己的回收区,回收区中删除算是物理删除
在你程序的磁盘文件展示区中过滤掉回收区内容本回答被提问者采纳
参考技术B 大概思路:所谓逻辑删除不是真删除(物理删除),所以建议做个临时文件目录,将删除的文件放到临时文件目录,恢复就从临时文件目录的文件放回原目录. 参考技术C 删除文件夹包括以下几种情况:

文件夹里的文件,文件夹里面的子文件夹(有文件),文件夹里面的子文件夹(空文件夹)。所以程序要针对这三种情况写。

import java.io.File;

public class Test
public static void main(String args[])
Test t = new Test();
delFolder("c:/bb");
System.out.println("deleted");


// 删除文件夹
// param folderPath 文件夹完整绝对路径

public static void delFolder(String folderPath)
try
delAllFile(folderPath); // 删除完里面所有内容
String filePath = folderPath;
filePath = filePath.toString();
java.io.File myFilePath = new java.io.File(filePath);
myFilePath.delete(); // 删除空文件夹
catch (Exception e)
e.printStackTrace();



// 删除指定文件夹下所有文件
// param path 文件夹完整绝对路径
public static boolean delAllFile(String path)
boolean flag = false;
File file = new File(path);
if (!file.exists())
return flag;

if (!file.isDirectory())
return flag;

String[] tempList = file.list();
File temp = null;
for (int i = 0; i < tempList.length; i++)
if (path.endsWith(File.separator))
temp = new File(path + tempList[i]);
else
temp = new File(path + File.separator + tempList[i]);

if (temp.isFile())
temp.delete();

if (temp.isDirectory())
delAllFile(path + "/" + tempList[i]);// 先删除文件夹里面的文件
delFolder(path + "/" + tempList[i]);// 再删除空文件夹
flag = true;


return flag;



这应该全了,有清楚的可以继续提问,呵呵

以上是关于请问用java 如何实现逻辑删除文件?的主要内容,如果未能解决你的问题,请参考以下文章

请问在JAVA中如何实现点击按钮实现数组自加一

请问下,我想用java实现下载excel表格,思路是先在临时文件里生成临时excel文件,但是不知

请问高手,用Calendar包实现,在java中如何获取指定年月日的星期?

请问Delphi 7.0开发的程序如何打包?

请问SQL如何实现批量查询

如何实现linux负载均衡集群文件同步?