努比亚的手机怎么样啊Z17怎么样

Java中通过递归调用删除文件夹下所有文件
import java.io.F
public class FileTest
&//递归删除指定路径下的所有文件
&public static void deleteAll(File file)
&&if(file.isFile() ||
file.list().length == 0)
&&&file.delete();
&&&File[] files
= file.listFiles();
&&&for(File f :
&&&&deleteAll(f);//递归删除每一个文件
&&&&f.delete();//删除该文件夹
&public static void main(String[] args)
&&File file = new
File("d:/abc/xyz");
&&deleteAll(file);
已投稿到:
以上网友发言只代表其个人观点,不代表新浪网的观点或立场。Java删除目录及目录下的所有文件 - chxkyy - ITeye技术网站
博客分类:
java中删除目录事先要删除目录下的文件或子目录public void del(String filepath) throws IOException{
 File f = new File(filepath);//定义文件路径
 if(f.exists() && f.isDirectory()){//判断是文件还是目录
  if(f.listFiles().length==0){//若目录下没有文件则直接删除
f.delete();
 }else{//若有则把文件放进数组,并判断是否有下级目录
  File delFile[]=f.listFiles();
 int i =f.listFiles().
 for(int j=0;j&i;j++){
  if(delFile[j].isDirectory()){
del(delFile[j].getAbsolutePath());//递归调用del方法并取得子目录路径
 delFile[j].delete();//删除文件
} Java底层的操作还是很重要的。
浏览 25214
浏览: 336437 次
来自: 上海
* @param filepath
f.exists() && f.isDirec ...
在线api文档 http://online.code1314. ...
chxkyy 写道xx 写道真佩服,把jar ...Java 如何创建/删除/修改/复制目录及文件_Linux编程_Linux公社-Linux系统门户网站
你好,游客
Java 如何创建/删除/修改/复制目录及文件
来源:Linux社区&
作者:yangchao228
在这个之前我需要备注一下,关于不覆盖以前内容的文件写入实现:
byte bytes[] = new byte[512];
bytes = fileContent.getBytes();
RandomAccessFile raf = new RandomAccessFile(filePath, "rw");
raf.seek(raf.length());//标注下一次写入点
raf.write(bytes);
raf.write("/n".getBytes());
raf.close();
以下便是正文:
import java.io.*;
public class FileOperate {& public FileOperate() {& }
& /**&& * 新建目录&& * @param folderPath String 如 c:/fqf&& * @return boolean&& */& public void newFolder(String folderPath) {&&& try {&&&&& String filePath = folderP&&&&& filePath = filePath.toString();&&&&& java.io.File myFilePath = new java.io.File(filePath);&&&&& if (!myFilePath.exists()) {&&&&&&& myFilePath.mkdir();&&&&& }&&& }&&& catch (Exception e) {&&&&& System.out.println("新建目录操作出错");&&&&& e.printStackTrace();&&& }& }
& /**&& * 新建文件&& * @param filePathAndName String 文件路径及名称 如c:/fqf.txt&& * @param fileContent String 文件内容&& * @return boolean&& */& public void newFile(String filePathAndName, String fileContent) {
&&& try {&&&&& String filePath = filePathAndN&&&&& filePath = filePath.toString();&&&&& File myFilePath = new File(filePath);&&&&& if (!myFilePath.exists()) {&&&&&&& myFilePath.createNewFile();&&&&& }&&&&& FileWriter resultFile = new FileWriter(myFilePath);&&&&& PrintWriter myFile = new PrintWriter(resultFile);&&&&& String strContent = fileC&&&&& myFile.println(strContent);&&&&& resultFile.close();
&&& }&&& catch (Exception e) {&&&&& System.out.println("新建目录操作出错");&&&&& e.printStackTrace();
& /**&& * 删除文件&& * @param filePathAndName String 文件路径及名称 如c:/fqf.txt&& * @param fileContent String&& * @return boolean&& */& public void delFile(String filePathAndName) {&&& try {&&&&& String filePath = filePathAndN&&&&& filePath = filePath.toString();&&&&& java.io.File myDelFile = new java.io.File(filePath);&&&&& myDelFile.delete();
&&& }&&& catch (Exception e) {&&&&& System.out.println("删除文件操作出错");&&&&& e.printStackTrace();
& /**&& * 删除文件夹&& * @param filePathAndName String 文件夹路径及名称 如c:/fqf&& * @param fileContent String&& * @return boolean&& */& public void delFolder(String folderPath) {&&& try {&&&&& delAllFile(folderPath); //删除完里面所有内容&&&&& String filePath = folderP&&&&& filePath = filePath.toString();&&&&& java.io.File myFilePath = new java.io.File(filePath);&&&&& myFilePath.delete(); //删除空文件夹
&&& }&&& catch (Exception e) {&&&&& System.out.println("删除文件夹操作出错");&&&&& e.printStackTrace();
& /**&& * 删除文件夹里面的所有文件&& * @param path String 文件夹路径 如 c:/fqf&& */& public void delAllFile(String path) {&&& File file = new File(path);&&& if (!file.exists()) {&&&&&&&& }&&& if (!file.isDirectory()) {&&&&&&&& }&&& String[] tempList = file.list();&&& File temp =&&& for (int i = 0; i & tempList. 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]);//再删除空文件夹&&&&& }&&& }& }
& /**&& * 复制单个文件&& * @param oldPath String 原文件路径 如:c:/fqf.txt&& * @param newPath String 复制后路径 如:f:/fqf.txt&& * @return boolean&& */& public void copyFile(String oldPath, String newPath) {&&& try {&&&&& int bytesum = 0;&&&&& int byteread = 0;&&&&& File oldfile = new File(oldPath);&&&&& if (oldfile.exists()) { //文件存在时&&&&&&& InputStream inStream = new FileInputStream(oldPath); //读入原文件&&&&&&& FileOutputStream fs = new FileOutputStream(newPath);&&&&&&& byte[] buffer = new byte[1444];&&&&&&&&&&&&&& while ( (byteread = inStream.read(buffer)) != -1) {&&&&&&&&& bytesum += //字节数 文件大小&&&&&&&&& System.out.println(bytesum);&&&&&&&&& fs.write(buffer, 0, byteread);&&&&&&& }&&&&&&& inStream.close();&&&&& }&&& }&&& catch (Exception e) {&&&&& System.out.println("复制单个文件操作出错");&&&&& e.printStackTrace();
& /**&& * 复制整个文件夹内容&& * @param oldPath String 原文件路径 如:c:/fqf&& * @param newPath String 复制后路径 如:f:/fqf/ff&& * @return boolean&& */& public void copyFolder(String oldPath, String newPath) {
&&& try {&&&&& (new File(newPath)).mkdirs(); //如果文件夹不存在 则建立新文件夹&&&&& File a=new File(oldPath);&&&&& String[] file=a.list();&&&&& File temp=&&&&& for (int i = 0; i & file. i++) {&&&&&&& if(oldPath.endsWith(File.separator)){&&&&&&&&& temp=new File(oldPath+file[i]);&&&&&&& }&&&&&&& else{&&&&&&&&& temp=new File(oldPath+File.separator+file[i]);&&&&&&& }
&&&&&&& if(temp.isFile()){&&&&&&&&& FileInputStream input = new FileInputStream(temp);&&&&&&&&& FileOutputStream output = new FileOutputStream(newPath + "/" +&&&&&&&&&&&&& (temp.getName()).toString());&&&&&&&&& byte[] b = new byte[1024 * 5];&&&&&&&&&&&&&&&&&& while ( (len = input.read(b)) != -1) {&&&&&&&&&&& output.write(b, 0, len);&&&&&&&&& }&&&&&&&&& output.flush();&&&&&&&&& output.close();&&&&&&&&& input.close();&&&&&&& }&&&&&&& if(temp.isDirectory()){//如果是子文件夹&&&&&&&&& copyFolder(oldPath+"/"+file[i],newPath+"/"+file[i]);&&&&&&& }&&&&& }&&& }&&& catch (Exception e) {&&&&& System.out.println("复制整个文件夹内容操作出错");&&&&& e.printStackTrace();
& /**&& * 移动文件到指定目录&& * @param oldPath String 如:c:/fqf.txt&& * @param newPath String 如:d:/fqf.txt&& */& public void moveFile(String oldPath, String newPath) {&&& copyFile(oldPath, newPath);&&& delFile(oldPath);
& /**&& * 移动文件到指定目录&& * @param oldPath String 如:c:/fqf.txt&& * @param newPath String 如:d:/fqf.txt&& */& public void moveFolder(String oldPath, String newPath) {&&& copyFolder(oldPath, newPath);&&& delFolder(oldPath);
相关资讯 & & &
& (11/30/:52)
& (07/08/:10)
& (04/22/:27)
& (11/21/:48)
& (05/21/:16)
& (07/09/:16)
   同意评论声明
   发表
尊重网上道德,遵守中华人民共和国的各项有关法律法规
承担一切因您的行为而直接或间接导致的民事或刑事法律责任
本站管理人员有权保留或删除其管辖留言中的任意内容
本站有权在网站内转载或引用您的评论
参与本评论即表明您已经阅读并接受上述条款查看:14112|回复:2
我想利用类实现一个通讯录,利用java的文件类在D盘生成一个AddressList文件,通过程序向这个文件中添加、删除某一条、删除全部记录以及查找某一条记录。在实现删除某一条记录时,我总是无法将指定姓名的通讯记录删除,因为初学,对java的指令及类还不是完全熟悉,现在想了一个方法,可能效果不是很高,也不是最好的实现方法,但是总算可以删除其中某一条记录了。
& & 对于初学者的我,实现了这个程序极大的提高了我的信心,让我有勇气能够继续学下去!所以我在这里把这段贴出来,希望得到各位高手的指正和帮助,谢谢大家!
import java.io.*;
import java.util.*;
public class TestDelete{
& &public static void main(String[] args) throws Exception {
& && &&&String toDelete = &dorothyle&;
& && &&&File file = new File(&D:\\TestDelete.doc&);
& && &&&file.createNewFile();
& && &&&FileWriter write = new FileWriter(&D:\\TestDelete.doc&,true);
& && &&&write.write(&1 dorothyle teacher &);
& && &&&write.write(&\n&);
& && &&&write.write(&2 beachzz citizenmember &);
& && &&&write.write(&\n&);
& && &&&write.write(&3 letao baby &);
& && &&&write.close();
& && &&&FileReader fileReader = new FileReader(&D:\\TestDelete.doc&);
& && &&&BufferedReader buffReader = new BufferedReader(fileReader);
& && &&&File modified = new File(&D:\\modified.doc&);
& && &&&modified.createNewFile();
& && &&&//此处已经实现了删除一条给定记录
& && &&&/* while ( (line = buffReader.readLine()) != null){
& && && && &FileWriter deleteWriter = new FileWriter(&D:\\modified.doc&,true);
& && && && &if (!line.equals(toDelete))
& && && && && & deleteWriter.write(line);
& && && && &deleteWriter.close();
& && &&&}*/
& && &&&// 此处可以通过给定的一行中的某个字符串删除此行
& && &&&S&&
& && &&&while ((line = buffReader.readLine()) != null){ // 利用BufferedReader读出文件中的每一行,并且判断循环是否结束
& &&&FileWriter deleteWriter = new FileWriter(&D:\\modified.doc&,true); // 定义一个FileWriter类,把需要保存的记录存到新的文件中
& &&&sub = line.substring(2, toDelete.length()+2); //利用求子串命令,找出一行中用来记录姓名的子串内容
& &&&if (!sub.equals(toDelete)){ // 判断子串内容和给定要删除的内容是否相等,如果不等,则把记录写到新文件中,如果相等则不再写入!即删除该条记录!
& &&&deleteWriter.write(line);
& && &&&deleteWriter.write(&\n&);
& && &&&deleteWriter.close();
& && &&&deleteWriter.close();& &// 如果不写入新文件,也要把FileWriter类关闭掉,否则程序会出现逻辑错误。
& & }& & import java.io.*;
/* while ( (line = buffReader.readLine()) != null){
FileWriter deleteWriter = new FileWriter(&D:\\modified.doc&,true);
if (!line.equals(toDelete))
deleteWriter.write(line);
deleteWriter.close();
我认为第一次向文件中写数据的时候应该选择覆盖
还是用数据库比较方便,特别是数据量大的时候Java 中强制删除文件的方法 - Ivan Li 的大杂烩 - ITeye技术网站
博客分类:
在系统开发时,有时需要在程序中把正在用到plugin文件删除,重新更新。这需要首先在java程序中停止使用这个plugin文件,然后删除,重新更新。我在开发是遇到这样的问题,在java中停止使用了plugin文件,但是在用过FileObj.delete时,返回false,在文件系统中删除plugin文件时,OS报错,说该文件正在使用中,等几秒中在删除就可以删除了。
我猜想可能是java已经不用该plugin文件了,但是OS还认为该文件还在被使用,所以报错,所以就写了个方法来强制删除改文件,不知道这样写有没有什么不妥?欢迎来拍砖!
* try to delete given file , try 10 times
* @param f
* @return true if file deleted success,
public static boolean forceDelete(File f)
boolean result =
int tryCount = 0;
while(!result && tryCount++ &10)
logger.debug("try to delete file "+ f.getName() +" cnt:"+tryCount);
System.gc();
result = f.delete();
浏览 13157
论坛回复 /
(13 / 17547)
我尝试过多次,一般情况下cnt=1时就能删除,现在cnt最大只是到5就结束了
加上超时代码吧。。。否则真的要是删到了系统文件就卡死了。
PS:gc是作什么用的?
去了是否就删不去了?
以下是commons-io里forceDelete的源码,它满足不了我上面说的需求
* Delete a file. If file is a directory, delete it and all sub-directories.
* The difference between File.delete() and this method are:
* &li&A directory to be deleted does not have to be empty.&/li&
* &li&You get exceptions when a file or directory cannot be deleted.
(java.io.File methods returns a boolean)&/li&
* @param file
file or directory to delete, must not be &code&null&/code&
* @throws NullPointerException if the directory is &code&null&/code&
* @throws IOException in case deletion is unsuccessful
public static void forceDelete(File file) throws IOException {
if (file.isDirectory()) {
deleteDirectory(file);
if (!file.exists()) {
throw new FileNotFoundException("File does not exist: " + file);
if (!file.delete()) {
String message =
"Unable to delete file: " +
throw new IOException(message);
浏览: 521555 次
来自: 北京
不错啊 非常实用
写个存储过程,爆如下错误,是不是游标里的数据太多引起的?无法执 ...
有SVR6了,为什么很多还在使用SVR4呢?
生活是多么美好阿!
你真是大好人,非常感谢

我要回帖

更多关于 努比亚手机质量怎么样 的文章

 

随机推荐