- 浏览: 92035 次
- 性别:
文章分类
最新评论
-
freezingsky:
人生从来没有害怕过走下坡,可惜的是,大多数夫妻或者情侣,一到挫 ...
我从11楼跳下去 -
胡旭个人博客:
哈哈,这个早就看过了!
我从11楼跳下去 -
砺雪凝霜:
跳下去自己就后悔了,可是后悔已经来不及了,我们关注的不 ...
我从11楼跳下去 -
kuchaguangjie:
最后没摔死?
我从11楼跳下去 -
无心:
加油!
File类(目录遍历)
现在实现一个通过面板统计相应磁盘目录下对应扩展名的文件个数,比如我要实先找到C盘下exe文件的个数。
大致思路是:先创建一个面板,面板上添加下拉框,供选择所需要查找的对象,添加一个搜索按钮,给按钮添加监听器。当点击按钮时,搜索到要找的文件统计其个数。
看看下面的代码:
package cn.netjava;
import java.awt.BorderLayout;
import java.awt.Choice;
import java.awt.Color;
import java.awt.Dimension;
import java.awt.FlowLayout;
import java.awt.TextArea;
import java.awt.event.ActionEvent;
import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;
import java.io.BufferedReader;
import java.io.File;
import java.io.FileReader;
import javax.swing.*;
public class FileTest01{
private static final int SCROLLBARS_BOTH = 0;
Choice ch_1;
Choice ch_2;
TextArea ta;
//程序入口
public static void main(String[] args) throws Exception{
//实例化一个File对象
FileTest01 fl=new FileTest01();
fl.intiGui();
}
/**
* 打印的目录下文件名
* @param string
* @return 文件的个数
*/
public int printDir(String dirName,String type) {
//定义文件个数,赋值为0
int 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);
//如果还是目录调用同样的方法计算,递归
fileCount+=printDir(subDir,type);
}
if(subFile[i].isFile()){
String fileName=subFile[i].getAbsolutePath();
if(istype(fileName,type)){
ta.append(fileName+"\n");
//System.out.println("文件:"+fileName);
fileCount++;}
}
}
return fileCount;
}
//判断文件的类型
private boolean istype(String fileName, String type) {
String tempType = "";
for(int i=fileName.length()-1;i>0;i--){
if(fileName.charAt(i)!='.'){
tempType = fileName.charAt(i) + tempType;
}
else break;
}
if(tempType.equals(type))
return true;
else
return false;
}
/**
* 初始化一个图形界面的方法
*/
private void intiGui() {
//创建一个窗体
JFrame jf=new JFrame();
//设置窗体的名字
jf.setTitle("统计文件");
//设置窗体的大小
jf.setSize(500, 350);
//设置关闭窗体时程序退出
jf.setDefaultCloseOperation(3);
//设置窗体显示在中央
jf.setLocationRelativeTo(null);
jf.getContentPane().setBackground(Color.red);
//创建一个北面面板
JPanel northpane=new JPanel();
//设置面板的大小
northpane.setPreferredSize(new Dimension(0,50));
northpane.setBackground(Color.green);
//将北面面板添加到窗体上
jf.add(BorderLayout.NORTH,northpane);
//实例化标签1
JLabel jl_1=new JLabel("路径");
northpane.add(jl_1);
//创建下拉列表框
ch_1=new Choice();
northpane.add(ch_1);
ch_1.add("E盘");
ch_1.add("C盘");
ch_1.add("F盘");
ch_1.add("G盘");
//实例化标签2
JLabel jl_2=new JLabel("文件名");
northpane.add(jl_2);
//实例化一个文本框
JTextField jtf=new JTextField("学习",8);
//将文本框加到northpane上
northpane.add(jtf);
//实例化标签3
JLabel jl_3=new JLabel("扩展名");
//将标签添加到northpane上
northpane.add(jl_3);
//实例化下拉框2
ch_2=new Choice();
ch_2.add("dmg");
ch_2.add("doc");
ch_2.add("exe");
ch_2.add("pdf");
northpane.add(ch_2);
//创建一个中间面板
JPanel centerpane=new JPanel();
//将中间面板添加到窗体上
jf.add(centerpane);
//新建一个多行文本框
ta = new TextArea("",15,60, SCROLLBARS_BOTH);
//将多行文本框添加到centerpane上
//ta.append("0000000000000000000"+'\n');
centerpane.add(ta);
//实例化一个按钮
JButton jb=new JButton("搜索");
northpane.add(jb);
//添加一个鼠标监听器
jb.addMouseListener(new MouseAdapter(){
//当鼠标点击时
public void mouseClicked(MouseEvent e) {
//对第一个下拉框判断要找的磁盘
String path=null;
String st1 = ch_1.getSelectedItem();
if(st1.equals("C盘")){
path = "C:";
}else if(st1.equals("E盘")){
path="E:";
}else if(st1.equals("F盘")){
path="F:";
}else if(st1.equals("G盘")){
path="G:";
}
//对第二个下拉框判断要找的文件类型
String type=null;
String st2 = ch_2.getSelectedItem();
if(st2.equals("pdf")){
type = "pdf";
}else if(st2.equals("dmg")){
type="dmg";
}else if(st2.equals("exe")){
type="exe";
}else if(st2.equals("doc")){
type="doc";
}
int count=printDir(path,type);;
System.out.println(path+"目录下共找到文件个数是:"+count);
}
});
jf.setVisible(true);
}
}
运行的结果如图。
大致思路是:先创建一个面板,面板上添加下拉框,供选择所需要查找的对象,添加一个搜索按钮,给按钮添加监听器。当点击按钮时,搜索到要找的文件统计其个数。
看看下面的代码:
package cn.netjava;
import java.awt.BorderLayout;
import java.awt.Choice;
import java.awt.Color;
import java.awt.Dimension;
import java.awt.FlowLayout;
import java.awt.TextArea;
import java.awt.event.ActionEvent;
import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;
import java.io.BufferedReader;
import java.io.File;
import java.io.FileReader;
import javax.swing.*;
public class FileTest01{
private static final int SCROLLBARS_BOTH = 0;
Choice ch_1;
Choice ch_2;
TextArea ta;
//程序入口
public static void main(String[] args) throws Exception{
//实例化一个File对象
FileTest01 fl=new FileTest01();
fl.intiGui();
}
/**
* 打印的目录下文件名
* @param string
* @return 文件的个数
*/
public int printDir(String dirName,String type) {
//定义文件个数,赋值为0
int 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);
//如果还是目录调用同样的方法计算,递归
fileCount+=printDir(subDir,type);
}
if(subFile[i].isFile()){
String fileName=subFile[i].getAbsolutePath();
if(istype(fileName,type)){
ta.append(fileName+"\n");
//System.out.println("文件:"+fileName);
fileCount++;}
}
}
return fileCount;
}
//判断文件的类型
private boolean istype(String fileName, String type) {
String tempType = "";
for(int i=fileName.length()-1;i>0;i--){
if(fileName.charAt(i)!='.'){
tempType = fileName.charAt(i) + tempType;
}
else break;
}
if(tempType.equals(type))
return true;
else
return false;
}
/**
* 初始化一个图形界面的方法
*/
private void intiGui() {
//创建一个窗体
JFrame jf=new JFrame();
//设置窗体的名字
jf.setTitle("统计文件");
//设置窗体的大小
jf.setSize(500, 350);
//设置关闭窗体时程序退出
jf.setDefaultCloseOperation(3);
//设置窗体显示在中央
jf.setLocationRelativeTo(null);
jf.getContentPane().setBackground(Color.red);
//创建一个北面面板
JPanel northpane=new JPanel();
//设置面板的大小
northpane.setPreferredSize(new Dimension(0,50));
northpane.setBackground(Color.green);
//将北面面板添加到窗体上
jf.add(BorderLayout.NORTH,northpane);
//实例化标签1
JLabel jl_1=new JLabel("路径");
northpane.add(jl_1);
//创建下拉列表框
ch_1=new Choice();
northpane.add(ch_1);
ch_1.add("E盘");
ch_1.add("C盘");
ch_1.add("F盘");
ch_1.add("G盘");
//实例化标签2
JLabel jl_2=new JLabel("文件名");
northpane.add(jl_2);
//实例化一个文本框
JTextField jtf=new JTextField("学习",8);
//将文本框加到northpane上
northpane.add(jtf);
//实例化标签3
JLabel jl_3=new JLabel("扩展名");
//将标签添加到northpane上
northpane.add(jl_3);
//实例化下拉框2
ch_2=new Choice();
ch_2.add("dmg");
ch_2.add("doc");
ch_2.add("exe");
ch_2.add("pdf");
northpane.add(ch_2);
//创建一个中间面板
JPanel centerpane=new JPanel();
//将中间面板添加到窗体上
jf.add(centerpane);
//新建一个多行文本框
ta = new TextArea("",15,60, SCROLLBARS_BOTH);
//将多行文本框添加到centerpane上
//ta.append("0000000000000000000"+'\n');
centerpane.add(ta);
//实例化一个按钮
JButton jb=new JButton("搜索");
northpane.add(jb);
//添加一个鼠标监听器
jb.addMouseListener(new MouseAdapter(){
//当鼠标点击时
public void mouseClicked(MouseEvent e) {
//对第一个下拉框判断要找的磁盘
String path=null;
String st1 = ch_1.getSelectedItem();
if(st1.equals("C盘")){
path = "C:";
}else if(st1.equals("E盘")){
path="E:";
}else if(st1.equals("F盘")){
path="F:";
}else if(st1.equals("G盘")){
path="G:";
}
//对第二个下拉框判断要找的文件类型
String type=null;
String st2 = ch_2.getSelectedItem();
if(st2.equals("pdf")){
type = "pdf";
}else if(st2.equals("dmg")){
type="dmg";
}else if(st2.equals("exe")){
type="exe";
}else if(st2.equals("doc")){
type="doc";
}
int count=printDir(path,type);;
System.out.println(path+"目录下共找到文件个数是:"+count);
}
});
jf.setVisible(true);
}
}
运行的结果如图。
评论
3 楼
无心
2013-08-04
加油!
2 楼
qianjiangbing
2013-08-04
T hanks!
1 楼
alvin198761
2013-08-04
写东西的人,总归是知道鼓励的,我提出两个简单的问题,其他我也没有细看
subFile 判断一下 == null就可以了
你判断了subFile.length,对后面的循环没啥影响,
然后就是盘符的问题,盘符是 File.listRoots()获得的,不是手动写死的,
------------------
别无它意,希望你能更进步
subFile 判断一下 == null就可以了
你判断了subFile.length,对后面的循环没啥影响,
然后就是盘符的问题,盘符是 File.listRoots()获得的,不是手动写死的,
------------------
别无它意,希望你能更进步
发表评论
-
jmeter的下载、安装、启动
2017-09-06 13:08 6271.http://jmeter.apache.org/down ... -
SimpleDateFormat转换时间 12,24时间格式
2016-11-09 13:09 601在使用SimpleDateFormat时格式化时间的 yyy ... -
Mysql权限控制 - 允许用户远程连接
2016-08-10 23:59 588Mysql权限控制 - 允许用户远程连接 -
了解泛型
2016-08-07 00:55 371Java 理论和实践: 了解泛型 识别和避免学习使用泛型过程中 ... -
关于内部类的几点认识
2016-08-05 23:54 3331、非静态内部类:内部类可以访问外部类的成员变量,甚至是私有 ... -
java IO流文件的读写具体实例
2016-07-20 22:28 454参考http://www.jb51.net/article/4 ... -
Helo I have similar problem when I start eclipse. An internal error occurred dur
2016-07-15 23:41 1327打开eclipse出现下面的错误信息: An inter ... -
对象的序列化及反序列化
2016-07-10 23:01 429可参考: Java基础学习总结——Jav ... -
this与super
2016-04-18 21:53 4191、this和super都代表了什么 this: ... -
面向对象之继承
2016-04-18 21:35 4241、继承: 让类与类之间产生关系,子父类关系。 ... -
代码块的概述和分类
2016-04-18 20:48 503A:代码块概述 在Java中使用{}括起来的代 ... -
static关键字
2016-04-11 19:40 3421.static 关键字的特点 >随着类的加载而加载 ... -
main方法结构的详细解释
2016-04-11 17:11 513A格式: public static void main ... -
mai方法格式详细解释
2016-04-11 17:06 01、内存中的五大内存 栈:存储局变量。 堆:允许程序员手 ... -
面向对象-封装
2016-04-01 10:11 37107.01_面向对象(构造方 ... -
面向对象-类与对象
2016-04-01 09:53 33906.01_面向对象(面向对象思想概述)(了解) A ... -
java枚举的7大用法
2014-06-23 11:10 381DK1.5引入了新的类型——枚举。在 Java 中它虽然算个 ... -
文件流的读与写
2014-05-28 00:43 1044文件流的读取有很方法,下面介绍一种文件读与写的方法。 读某一路 ... -
讲的很清晰的HashMap算法
2014-05-12 09:59 522HashMap 和 HashSet 是 Java Collec ... -
for循环遍历的几种方法
2014-05-12 09:38 822J2SE 1.5提供了另一种形式的for循环。借助这种形式的f ...
相关推荐
在Java中,使用File类的listFiles()和listDirs()方法;在Windows系统命令行,我们可以使用dir命令配合通配符进行遍历。目录遍历在文件管理和自动化脚本编写中十分常见。 综合上述信息,"图片的压缩截取和目录遍历....
在这个特定的案例中,"VB 编写的目录遍历程序"是一个利用VB技术实现的实用工具,能够遍历指定的文件系统目录,并将结果导出到Excel列表中,这对于文件管理和组织工作非常有帮助。 该程序的核心功能包括: 1. **...
通常,`Demo1`可能包含了一个完整的或部分的目录遍历实现,可以根据上面的解释进行扩展或调整。 总结来说,遍历目录树是通过递归和`<filesystem>`库来实现的。理解这一过程有助于在C++中处理复杂的文件系统任务。在...
### 一、目录遍历的基本概念 在计算机科学中,**目录遍历**(Directory Traversal)是指系统地访问一个目录及其所有子目录下的文件和子目录的过程。这个过程通常用于查找特定类型的文件、统计文件数量或者进行其他...
### Web应用攻击简解:目录遍历攻击 在网络安全领域,Web应用攻击是常见的威胁之一,其中目录遍历攻击(Directory Traversal Attack)尤为突出,它允许攻击者突破Web服务器的安全边界,访问或操纵受限的文件和目录...
在Python编程语言中,目录遍历是一项基础但至关重要的技能,尤其对于文件系统操作和数据管理。本视频教程和配套文档旨在深入浅出地教授如何在Python中有效地遍历文件目录。 目录遍历的主要目标是访问和处理指定路径...
本文将深入探讨如何使用`File`类遍历目录和文件,并提供实例代码供参考。 首先,`File`类有多个构造函数,用于创建表示文件或目录的对象。例如: 1. `File(String args0)` - 使用一个表示文件或目录路径的字符串...
6. **file-icons.js、octotree.js**:这两个JavaScript文件分别对应前面提到的CSS文件,可能用于实现文件类型的图标显示和核心的目录遍历功能。 7. **ondemand.js、keymaster.js**:`ondemand.js`可能是实现按需...
通过File类,我们可以创建一个指向特定文件或目录的引用,然后进行各种操作,包括遍历文件夹。 要遍历文件夹,我们需要使用File的directoryContents属性和DirectoryEntry类。下面是一个简单的例子,展示了如何遍历...
例如,在Python中,我们可以使用`os`和`os.path`模块,而在Java中则可以使用`java.io.File`类。 **Python示例** 在Python中,可以使用以下代码来遍历文件夹并打印目录树结构: ```python import os def list_...
这篇实例分析主要关注的是如何使用Python进行目录遍历,包括两种不同的方法:一是基于`os`模块的`listdir()`和`os.path`方法,二是利用`os.walk()`方法。下面我们将详细探讨这两种方法及其相关知识点。 1. `os....
在VC++编程中,遍历文件夹并自动生成目录树是一项常见的任务,它涉及到文件系统操作和数据结构的使用。这个任务通常用于构建文件管理器、进行文件搜索或实现类似资源管理器的功能。下面我们将详细讲解如何在VC++中...
在Android开发中,访问外部存储设备(如SD卡)并管理其中的文件是常见的...同时,随着Android Q的发布,对外部存储的访问方式有了新的限制,使用`DocumentFile`类和`MANAGE_EXTERNAL_STORAGE`权限可能是更好的选择。
### 如何在VB中实现目录遍历 在Visual Basic(简称VB)中实现目录遍历是一种常见的需求,尤其是在需要处理文件系统操作的应用程序中。本文将详细介绍如何利用VB结合Windows API来实现目录遍历功能。 #### 知识点...
在本文中,我们将深入探讨如何使用Microsoft Foundation Class (MFC) 库来...通过分析和学习这些代码,你可以更深入地理解MFC如何处理目录遍历和树形控件的使用。同时,也可以借鉴其设计思路,为自己的项目提供灵感。
在IT行业中,目录遍历是一项基础且重要的任务,特别是在文件管理、系统操作或者软件开发中。DirTree,正如其名,通常是指一个用于遍历目录结构的工具或框架。在这个VB6.0的实例中,"DirTree 目录 OOP 遍历 框架"是一...
在IT领域,遍历磁盘目录并访问所有文件是一项基础且重要的任务,它涉及到操作系统、文件系统和编程语言等多个方面。这项操作常用于文件管理、数据备份、病毒扫描等多种场景。下面将详细介绍如何实现这个功能,并结合...
然后,可以使用`File`类的方法来遍历文件和目录。以下是一个简单的遍历SD卡文件的例子: ```java public void listAllFilesOnSdCard() { // 获取SD卡根目录 File sdCard = Environment....
1.遍历当前及其子目录中的所有文件,文件放到http/down的目录下无论几级均可。 2.下载的代码fileDownProcess.php文件中除了echo $file_data;其他不能有echo。这点很重要,否则下载下来的文件无法使用。 3.不支持中文...
2. **遍历目录**:类中有一个方法,如`traverseDirectory()`,用于递归遍历目录。这个方法可能使用PHP的`scandir()`函数获取目录中的所有文件和子目录,然后对每个条目进行处理。如果条目是子目录,它会调用自身继续...