首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 其他教程 > 开源软件 >

Java创设、重命名、删除文件和文件夹

2012-06-28 
Java创建、重命名、删除文件和文件夹package test.fileimport java.io.Fileimport java.io.FileOutputStre

Java创建、重命名、删除文件和文件夹

package test.file;

import java.io.File;
import java.io.FileOutputStream;
import java.io.OutputStreamWriter;
import java.io.Writer;

public class TravelAllFile {
??? public static void main(String[] args) {
??? ??? String path = "E:/文件夹";
??? ??? File f = new File(path);
??? ??? if (f.isDirectory()) {
??? ??? ??? new TravelAllFile().getFileName(f);
??? ??? }

??? ??? delFolder("E:/文件夹");
??? ??? System.out.println("deleted");
??? }

??? // 递归查找函数,参数为file对象
??? public void getFileName(File f) {
??? ??? // File 数组
??? ??? File[] files = f.listFiles();

??? ??? for (int i = 0; i < files.length; i++) {
??? ??? ??? // 递归出子目录
??? ??? ??? if (files[i].isDirectory()) {
??? ??? ??? ??? System.out.println("子目录是:" + files[i].getName());
??? ??? ??? ??? getFileName(files[i]);
??? ??? ??? ??? // 递归出子文件
??? ??? ??? } else {
??? ??? ??? ??? System.out.println(files[i].getName());
??? ??? ??? }

??? ??? }
??? }

??? // 重命名
??? public void rename() {
??? ??? File fl = new File("E:\\文件夹"); // 这里写上发替换的文件夹路径,注意使用双斜杠
??? ??? String[] files = fl.list();
??? ??? File f = null;
??? ??? String filename = "";
??? ??? for (String file : files) {
??? ??? ??? f = new File(fl, file);// 注意,这里一定要写成File(fl,file)如果写成File(file)是行不通的,一定要全路径
??? ??? ??? filename = f.getName();
??? ??? ??? // System.out.println(filename);
??? ??? ??? f.renameTo(new File(fl.getAbsolutePath() + "\"
??? ??? ??? ??? ??? ??? ??? + filename.replace("要替换掉的内容", "替换成的内容")));// 这里可以反复使用replace替换,当然也可以使用正则表达式来替换了

??? ??? }
??? }

??? /**
??? ?* 删除文件夹
??? ?* @param path 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;
??? }

??? /**
??? ?* 创建目录
??? ?* @param dirPath
??? ?*/
??? static Boolean createDir(String dirPath) {
??? ??? File dirFile = new File(dirPath);
??? ??? return dirFile.mkdirs();
??? }

??? /**
??? ?* 创建文件,并添加内容
??? ?* @param filePathName
??? ?* @param content
??? ?* @return Boolean
??? ?*/
??? static Boolean createFile(String filePathName, String content) {
??? ??? Writer writer = null;
??? ??? File file = new File(filePathName);
??? ??? File temp = new File(file.getParent());
??? ??? if (!temp.exists()) {
??? ??? ??? createDir(file.getParent());
??? ??? }
??? ??? try {
??? ??? ??? writer = new OutputStreamWriter(new FileOutputStream(file));
??? ??? ??? writer.write(content);
??? ??? } catch (Exception e) {
??? ??? ??? e.printStackTrace();
??? ??? ??? return false;
??? ??? } finally {
??? ??? ??? try {
??? ??? ??? ??? if (writer != null) {
??? ??? ??? ??? ??? writer.close();
??? ??? ??? ??? }
??? ??? ??? } catch (Exception e1) {
??? ??? ??? ??? e1.printStackTrace();
??? ??? ??? }
??? ??? }
??? ??? return true;
??? }
}

热点排行