请问用java 如何实现逻辑删除文件?
我在做一个删除磁盘文件的程序,里面有删除、还原功能,可以用先删除的文件,然后再还原,但用java删除的文件不在回收站中,请问该用什么方法实现java的逻辑删除?...
我在做一个删除磁盘文件的程序,里面有删除、还原功能,可以用先删除的文件,然后再还原,但用java删除的文件不在回收站中,请问该用什么方法实现java的逻辑删除?
展开
4个回答
展开全部
可以直接定义一个逻辑上的回收站
凡是通过你程序删除的都放你自己的回收区,回收区中删除算是物理删除
在你程序的磁盘文件展示区中过滤掉回收区内容
凡是通过你程序删除的都放你自己的回收区,回收区中删除算是物理删除
在你程序的磁盘文件展示区中过滤掉回收区内容
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
大概思路:所谓逻辑删除不是真删除(物理删除),所以建议做个临时文件目录,将删除的文件放到临时文件目录,恢复就从临时文件目录的文件放回原目录.
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
2011-01-11
展开全部
删除文件夹包括以下几种情况:
文件夹里的文件,文件夹里面的子文件夹(有文件),文件夹里面的子文件夹(空文件夹)。所以程序要针对这三种情况写。
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;
}
}
这应该全了,有清楚的可以继续提问,呵呵
文件夹里的文件,文件夹里面的子文件夹(有文件),文件夹里面的子文件夹(空文件夹)。所以程序要针对这三种情况写。
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;
}
}
这应该全了,有清楚的可以继续提问,呵呵
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询