`
coconut_zhang
  • 浏览: 541899 次
  • 性别: Icon_minigender_1
  • 来自: 天津
社区版块
存档分类
最新评论

文件目录操作

    博客分类:
  • java
阅读更多
import java.io.*;

public class FileUtil {
   public FileUtil() {
   }

   /**
     * 新建目录
     * @param folderPath String 如 c:/fqf
     * @return boolean
     */
   public void newFolder(String folderPath) {
       try {
           String filePath = folderPath;
           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 = filePathAndName;
           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 = fileContent;
           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 = filePathAndName;
           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 = folderPath;
           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()) {
           return;
       }
       if (!file.isDirectory()) {
           return;
       }
       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]);//再删除空文件夹
           }
       }
   }

   /**
     * 复制单个文件
     * @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];
               int length;
               while ( (byteread = inStream.read(buffer)) != -1) {
                   bytesum += byteread; //字节数 文件大小
                   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=null;
           for (int i = 0; i < file.length; 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];
                   int len;
                   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);

   }
}
分享到:
评论

相关推荐

    一个php文件目录操作类

    本文将详细讨论“一个PHP文件目录操作类”的概念、功能和应用,以及如何使用它来实现测试建立文件夹、复制文件夹、移动文件夹和删除文件夹等常见任务。 PHP提供了丰富的内置函数来处理文件和目录,如`mkdir()`用于...

    c#文件目录操作类(全,实用)

    在这个“c#文件目录操作类(全,实用)”中,我们重点关注`System.IO`命名空间下的`File`和`Directory`类,它们是C#进行文件和目录操作的核心。 `File`类提供了许多静态方法,用于对单个文件进行读写、创建、删除、...

    php文件目录操作类.zip

    这个“php文件目录操作类”压缩包提供了一个实用的工具,帮助开发者更方便地处理这些任务。下面我们将深入探讨这个类的一些核心功能以及相关的PHP文件系统函数。 首先,类库的核心功能包括: 1. 建立文件夹:在PHP...

    Delphi文件目录操作一例

    摘要:Delphi源码,文件操作,目录操作  Delphi文件目录操作一例,person.dat为数据库,Delphi全目录文件拷贝、删除文件或目录到回收站中,演示了一些简单的文件FSO操作,用Delphi究竟如何实现,请下载源码一看究竟。

    Delphi文件目录操作一例..rar

    在实际的`Delphi文件目录操作一例`中,你可能会看到如何将这些功能整合到一个程序中,比如创建一个简单的文件管理系统,允许用户浏览、创建、删除、移动和复制文件及目录。代码可能包含处理用户输入的界面元素,如...

    php 文件目录操作类|Dir.php

    php 文件目录操作类php 文件目录操作类php 文件目录操作类php 文件目录操作类php 文件目录操作类php 文件目录操作类php 文件目录操作类

    常用文件目录操作函数

    "常用文件目录操作函数"这个主题涵盖了一系列用于处理文件和目录的基本功能,包括获取文件后缀、目录信息、文件大小,以及创建多级目录和遍历目录等操作。下面将详细介绍这些知识点。 1. **获取文件后缀**: 文件...

    VC下利用ADO操作数据库类和文件目录操作类

    本主题主要围绕如何在VC++下利用ADO进行数据库操作以及文件目录操作进行详细阐述。 首先,ADO是Microsoft的OLE DB技术的一部分,它提供了一组COM组件,用于在应用程序中实现对数据的存取。在VC++中,我们可以使用...

    linux操作系统实验文件和目录操作报告.pdf

    Linux 操作系统文件和目录操作报告 Linux 操作系统中的文件类型可以分为普通文件、目录文件、链接文件、设备文件、套接字文件和管道文件。普通文件是存储数据的文件,目录文件是存储文件的文件,链接文件是指向其他...

    QT文件目录操作应用程序示例

    Qt为文件和目录操作提供了一些类,利用这些类可以方便地实现一些操作。Qt提供的与文件和目录操作相关的类包括以下几个。 QCoreApplication:用于提取应用程路径、程序名等文件信息。 QFiIe:除了打开文件操作外,...

    文件目录操作(1).xmind

    文件目录操作(1).xmind

    一个打开文件目录操作的android程序

    综上所述,开发一个在Android上打开文件目录的操作程序涉及到的知识点包括:Android文件系统、`java.io.File`操作、`ListView`与`ArrayAdapter`、`Dialog`组件、权限管理、事件监听以及API兼容性处理。通过理解和...

    Delphi 文件目录操作.rar

    本示例主要关注的是在Delphi中如何进行文件目录的操作,这对于任何涉及到文件管理的软件开发都至关重要。下面将详细阐述Delphi中关于文件和目录操作的关键知识点。 1. **TDirectory 类**: Delphi的System.IOUtils...

    详谈PHP文件目录基础操作

    在实际应用中,文件目录操作的熟练使用对于提高开发效率和程序性能至关重要。在Web开发中,我们经常需要处理用户上传的文件,生成临时文件,或者管理日志文件等,这些都要求我们能够准确地操作和管理文件和目录。...

    头哥实践平台操作系统实验-实训二 linux文件目录操作2关

    头哥操作系统实验学习参考代码

    java实现对文件的各种操作的工具类.md

    # java实现对文件的各种操作的工具类 ## 可以实现的操作有: 1. 删除单个文件 2. 删除文件夹及文件夹下的文件 3. 使用文件流对单个文件进行复制 4. 复制整个文件夹内容(包含子文件夹中的所有内容) 5. ...

    模拟文件目录管理系统

    3. **目录管理**:在C++中,没有内置的库直接处理文件目录操作。但你可以使用POSIX或Windows API(如Boost.Filesystem库)来实现这些功能。在POSIX系统上,可以使用`mkdir`、`rmdir`、`chdir`等系统调用;在Windows...

    C#文本文件读取和写入(文件、目录操作)

    在C#编程中,文件和目录操作是日常开发中不可或缺的部分。本文将深入探讨如何使用C#进行文本文件的读取、写入、以及文件和目录的相关操作,以WindowForm窗体应用程序为例。 首先,我们关注的是文本文件的读取和写入...

    Vim进行文件目录操作小结

    以下是对标题"Vim进行文件目录操作小结"和描述中的知识点的详细说明: ### 1. 获取当前文件信息 在Vim中,可以轻松获取关于当前文件的各种信息: - `%`寄存器:存储当前文件的完整路径。通过`:echo @%`可以查看。...

Global site tag (gtag.js) - Google Analytics