`
快乐的拖拉机
  • 浏览: 9531 次
  • 性别: Icon_minigender_1
社区版块
存档分类
最新评论

File的使用(查找文件)

 
阅读更多
                      File类的使用的总结
file类与java.io包中,可以通过File对象的方法创建对象,删除文件,列表目录下的文件判断文件是目录还是正式文件。
一、文件的系统规则:
1、文件的全名包括文件的路径名和扩展名字,单独讲一个文件名时,是不带路径名但带扩展名的文件名
2、同意目录下不可能存在同名的目录和真实文件,系统主要有目录类型的的文件和真实文件两种,正实文件没有扩展名。
3、相对目录指不以路径分隔符开头的文件路径,绝对目录是以根目录开头的路径,当前目录指相对与程序运行时的目录算起的相对路径
4、目录分割符和路径分割符在liunx和win平面上不同,前者为“/”,和“:”,后者为“\”和“;”,因此不要硬编码到程序中,而应使用File类提供的相应属性。
二、File类的构造器
1、File (File parent ,String child )表示在父目录parent下建一个child 子目录对象
2、File(String parent,String.pathnam)表示创建一个指向pathname名字的File对象
3、File(string parent String child)表示以一个名为parent的字符串作为父目录名,创建一个指向名为child文件的文件对象
三、File 类十个的重要方法
1、boolean exists():判断File对象指向的文件是否存在
2、String getName()得到文件不带路径的名字
3、boolean isDirectoty();判断文件是否为目录
4、boolean isFile();判断File对象指向的文件是否为真实文件
5、long length();得到FIle文件对象指向的文件的长度,以byte计,如指向目录,则返回0 ;
6、File[] listFile();将File对象指向的文件的下一级的所有目录和真实文件作为一个数组返回。若File对象为一个真实文件,则返回null
7、boolean mkdir();根据File对象的名字(路径)创建一个目录,如是相对目录,则在当前目录下,注意:仅可创建一级目录,如有已有的同名真实文件存在,则抛出异常信息
8、boolean mkdirs():如果File对象名字有很多级目录,可以一次性创建
9、boolean delete();从磁盘上删除File对象所指向的文件
10、boolean createNewFile():根据File对象的名字在磁盘上创建一个新的真实文件;如已经存在同名的文件则覆盖,如存在同名目录,则抛出异常信息,创建失败:


这个是查找文件的一个小程序
package wenjian;

import java.awt.BorderLayout;
import java.awt.FlowLayout;
import java.awt.Font;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.io.File;

import javax.accessibility.AccessibleContext;
import javax.swing.Action;
import javax.swing.JButton;
import javax.swing.JComboBox;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JScrollPane;
import javax.swing.JTextArea;
import javax.swing.JTextField;

public class Jframewj extends JFrame {

private String b;
private String b1;
private String j;
private JTextArea ja;
private int fileCount=0;
private int classCount=0;
private String txt;
JComboBox bo;//根目录名
JComboBox bo1;//文档名
JTextField jt;

// private String
public static void main(String[] args) {
Jframewj jf = new Jframewj();
jf.Beautiful();
}

public int run(String dirName){


fileCount=0;
//实例化一个文件,并把路劲传给它
File dirFile = new File(dirName);
File[] subFile = dirFile.listFiles();//获取给定路径的列表目录
if(null==subFile||subFile.length==0){
return 0;
}
//遍历所有的目录
for(int i=0;i<subFile.length;i++){
if(subFile[i].isDirectory()){
//得到目录路径
String subDir=subFile[i].getAbsolutePath();
// System.out.println(subDir+"nnnnn'");
// ja.setText(ja.getText() + "目录"+subDir + "\r\n");
if("全部"==b1){
ja.append("目录"+subDir + "\r\n");
}
//输出对应后缀名的文件
else if(subDir.endsWith(b1)){
ja.append("目录"+subDir + "\r\n");
classCount++;
}
                //进行递归操作,统计所有文件的个数
fileCount+=run(subDir);
}
//判断是否为文件
if(subFile[i].isFile()){
fileCount++;
//当为文件时,得到路径,并输出
String fileName=subFile[i].getAbsolutePath();
// ja.setText(ja.getText() + fileName + "\r\n");
if("全部"==b1){
ja.append(fileName + "\r\n");
}
else if(fileName.endsWith(b1)){
ja.append(fileName + "\r\n");
classCount++;
}
}
}
return fileCount;

}

private void Beautiful() {
// 设置画板的大小,标题,显示位置
this.setSize(800, 500);
this.setTitle("文件查找");
this.setDefaultCloseOperation(3);
this.setLocationRelativeTo(null);
this.setLocation(200, 200);
// 设置为边框布局
this.setLayout(new BorderLayout());

ja = new JTextArea(22, 80);// 实例化一个显示框
// 设置显示框的行列
ja.setFont(new Font("楷体", Font.BOLD, 15));
JScrollPane jso = new JScrollPane(ja);// 实例化一个有横条的面板
// 贴三个标签
JLabel j1 = new JLabel("路径:");
JLabel j2 = new JLabel("文件:");
JLabel j3 = new JLabel("拓展名:");
jt = new JTextField(8);// 实例化一个文本输入框
bo = new JComboBox();
bo1 = new JComboBox();// 实例化一个下拉框;
JButton jb = new JButton("开始");
bo.addItem("全部");
bo.addItem("C:/");
bo.addItem("D:/");
bo.addItem("E:/");
bo.addItem("F:/");
String [] bo2 = new String[]{"全部",".txt",".java",".docx",".zip",".jpg",".wav"};
for (int i=0;i<bo2.length;i++){
bo1.addItem(bo2[i]);
}
FlowLayout f = new FlowLayout();
this.setLayout(f);
// this.BorderLayout.NORTH.
// 将各种按钮标签贴到窗体上
this.add(j1, BorderLayout.NORTH);
this.add(bo, BorderLayout.NORTH);
this.add(j2, BorderLayout.NORTH);
this.add(jt, BorderLayout.NORTH);
this.add(j3, BorderLayout.NORTH);
this.add(bo1, BorderLayout.NORTH);
this.add(jb, BorderLayout.NORTH);
this.add(jso, BorderLayout.CENTER);
this.setVisible(true);
// b= bo.getActionCommand();

// System.out.println(b);

jb.addActionListener(new ActionListener() {

public void actionPerformed(ActionEvent e) {
b = bo.getSelectedItem().toString();//得到根目录下拉框里的选项值

b1 = bo1.getSelectedItem().toString();//得到扩展名下拉框的选项值
txt=jt.getText();//得到文本框里输入的目录路径
System.out.println(b+"mmmmmmmmm");
// System.out.println("============"+txt);
//判断文本输入框是否输入了目录路径
if(!txt.isEmpty()){
b=txt;
// System.out.println(b+"uuuuuu");
}
if("全部"!=b){
// System.out.println(b+"oooooooooooo");
//调用统计方法
run(b);
if(b1=="全部"){
ja.append("目录"+b+"下的文件的总数为"+ fileCount+ "\r\n");
}
// ja.setText(ja.getText()+"目录"+b+"下的文件的总数为"+ fileCount+ "\r\n");
else
{
System.out.println(b+"111111111111");
ja.append("目录"+b+"下拓展名为"+b1+"的文件总数为"+ classCount+ "\r\n");
classCount=0;
}
}
// else{
// for(int i=0;i<5;i++){
// Thread th = new Thread();
// th.start();
// }
// }
}
});
}
}




分享到:
评论

相关推荐

    C++实现快速查找文件 C++实现快速查找文件

    综上所述,C++实现快速查找文件涉及到了标准库的使用、高效数据结构的选择、并发编程以及系统集成等多个方面。通过这些技术的综合应用,可以在满足性能需求的同时,提供灵活且可靠的文件查找功能。

    41:Duplicate File Finder Plus10.1一款简单好用的重复文件快速查找工具.rar

    《重复文件查找利器:Duplicate File Finder Plus 10.1》 在日常的电脑使用过程中,我们往往会因为各种原因积累大量的文件,其中不乏重复的文件。这些重复的文件占用宝贵的硬盘空间,有时还可能导致文件管理混乱。...

    硬盘内查找重复文件的软件 超好用 Duplicate File Detective

    使用Duplicate File Detective进行重复文件管理,不仅可以释放硬盘空间,还可以帮助整理电脑文件,提高文件查找效率。然而,需要注意的是,在删除文件前一定要谨慎操作,避免误删重要文件。对于重要的数据,建议先...

    Codesys:文件读写(CAA File库)

    - **文件路径**: 使用CAA File库时,需要指定正确的文件路径。例如,在Linux系统中,文件路径应使用 `/` 而不是 `\`,如`CAA_FILENAME:= '/home/test.txt'`。 - **命令行工具**: 在Linux系统中,可以通过命令行工具...

    C#文件查找(按内容、文件名称查找)源码

    - `Directory.GetFiles()`:这是最常用的查找文件的方法,可以根据指定的路径和通配符来获取匹配的文件名列表。 - `DirectoryInfo.GetFiles()`:与前者类似,但使用`DirectoryInfo`对象可以提供更高级的遍历目录的...

    Duplicate File Finder Plus(重复文件查找工具)v10.1.048绿色版

    Duplicate File Finder Plus 是一款快速重复文件查找器,基于文件内容快速查找驱动器上的重复文件,您可删除不需要的文件恢复宝贵的磁盘空间,降低管理成本,避免不必要的混淆,100% 的准确结果,你会爱上它的!...

    C函数查找文件

    在C语言中,查找文件是程序开发中的常见任务,它涉及到对文件系统进行操作,以确定文件是否存在,读取文件内容或获取文件属性。本文将深入探讨C语言中用于查找文件的一些关键函数,并通过实例来解释它们的工作原理。...

    C# 快速文件搜索 查找

    对于简单的文件搜索,可以使用`File.Exists()`方法检查单个文件是否存在,但这种方式并不适用于大量文件的搜索。 在进行文件搜索时,`Directory.GetFiles()`方法是一个常用的选择。它允许我们指定一个目录路径,...

    查找文件delphi代码

    它们可能包含了如何使用`FindFileW.pas`和`FindFile.pas`源代码的实际示例,帮助开发者了解如何将这些查找文件的功能整合到自己的Delphi应用中。 在学习和使用这些源代码时,你需要理解以下关键概念: - **Delphi...

    VB 快速查找文件

    通过`FileSystemObject`的`GetFolder`方法获取指定目录的引用,然后使用`Files`集合和`Name`属性来遍历和查找文件。例如: ```vb Dim fso As Object Set fso = CreateObject("Scripting.FileSystemObject") Dim ...

    重复文件查找器 TriSun Duplicate File Finder Plus 10.1 Build 052 中文多语免费版.zip

    重复文件查找器 Duplicate File Finder Plus – 快速查找依赖于文件内容的驱动器上的重复文件,您可以删除不需要的文件,以期恢复宝贵的磁盘空间,降低管理成本并避免不必要的混淆。由于我们内置了高速文件比较算法...

    3、HDFS的使用(读写、上传、下载、遍历、查找文件、整个目录拷贝、只拷贝文件、列出文件夹下文件、删除文件及目录、获取文件及文件

    - **查找文件**:利用`LocatedFileStatus[] globStatus(Path pathPattern)`根据通配符查找文件。 - **拷贝文件/目录**:调用`boolean rename(Path src, Path dst)`,实现文件或目录的重命名(相当于拷贝并删除源文件...

    批量查找文件并复制到指定目录

    REM 使用DIR查找文件,这里假设查找当前目录及其子目录下的文件 for /f "delims=" %%j in ('dir /s /b "%%i"') do ( REM 如果找到文件,则复制到目标目录 if exist "%%j" ( copy "%%j" "C:\TargetDirectory\" ...

    vc在硬盘上查找文件.zip

    本文将深入探讨如何使用C++在硬盘上查找文件,并结合提供的"vc在硬盘上查找文件.txt"文件中的信息,进一步解释相关知识点。 首先,让我们了解在C++中进行文件查找的基本步骤: 1. **文件路径处理**:在C++中,文件...

    Java 通过通配符查找文件 *.*, *.java, a*.*, a*.java

    Java 通过通配符查找文件 例如:*.*, *.java, a*.*, a*.java

    全盘查找文件,可查指定文件后缀名和指定文件

    在IT领域,全盘查找文件是一项基础但至关重要的任务,特别是在需要快速定位特定类型文件或者大量文件时。本文将深入探讨“全盘查找文件”这一主题,包括如何通过指定文件后缀名进行查找,以及涉及的技术如递归调用和...

    C++如何查找文件中

    在C++编程中,查找文件是一项基本操作,它涉及到文件系统的交互和输入/输出(I/O)操作。C++标准库提供了多种方法来处理文件查找,包括`std::ifstream`、`std::fstream`和`std::dir`等类。下面我们将深入探讨如何在C++...

    ubuntu下的文件查找命令

    `updatedb`用于更新文件索引数据库,通常在系统启动后或者需要查找文件前运行,以确保数据库中的信息是最新的。 4. `find`命令: `find`命令是Linux中最强大的文件查找工具,它可以基于各种条件来查找文件。常用...

    java实现根据关键字查找所在文件夹的文件

    这是一个简单的Java程序,实现根据关键字查找文件的功能: ```java import java.io.File; import java.io.IOException; import java.nio.file.Files; import java.nio.file.Paths; import java.util.ArrayList; ...

    ubuntu系统中文件和内容查找命令总结linux操作系统电脑资料.doc

    * -cpio 对匹配的文件使用 cpio 命令,将这些文件备份到磁带设备中 2. locate 命令 locate 命令其实是“find -name”的另一种写法,但是要比后者快得多,原因在于它不搜索具体目录,而是搜索一个数据库(/var/lib/...

Global site tag (gtag.js) - Google Analytics