package com.malijun.files;
import java.io.*;
import java.util.*;
import java.util.regex.*;
public class ListFiles {
/**
* @param args
*/
public static void main(String[] args) {
String path=getPath();
ListFiles lf=new ListFiles();
lf.getFileNames(new File(path));
}
private static String getPath() {
System.out.println("请输入文件的路径:");
BufferedReader in = new BufferedReader(
new InputStreamReader(System.in));
String s;
try {
if((s = in.readLine()) != null && s.length() != 0)
return s;
} catch (IOException e) {
// TODO 自动生成 catch 块
e.printStackTrace();
}
// TODO 自动生成方法存根
return null;
}
public void getFileNames(File file){
File list[]=file.listFiles();
for(int i=0;i<list.length;i++){
if(list[i].isFile()){
String fileName=list[i].getName();
fileName=fileName.trim();
if(isStartNum(fileName)&&isEndJPG(fileName)&&fileName.length()>10){
File filedst=new File("J:\\pic05",fileName.substring(0,10)+".jpg");
list[i].renameTo(filedst);
System.out.println(list[i].getName());
}
else if(isStartCH(fileName)&&isEndJPG(fileName)&&fileName.length()>14){
int len=fileName.length();
String filedstName=fileName.substring(len-14);
File filedst=new File("J:\\pic05\\1",filedstName);
list[i].renameTo(filedst);
System.out.println(fileName);
}
/* String regEx = "^[0-9]";
if((list[i].getName()).matches(regEx)){
System.out.println(list[i].getName());
}*/
}
else if(list[i].isDirectory()){
System.out.println("++"+list[i].getName()+"++");
getFileNames(list[i]);
}
}
//out.println("<br><font color=#ff0000>" + path + "目录下的目录:</font><br>");
/* for(int i=0;i<list.length;i++){
if(list[i].isDirectory()){
System.out.println(list[i].getName());
}*/
//out.println(list<I>.getName() + "<br>");
// TODO 自动生成方法存根
}
private boolean isStartNum(String name) {
String regEx = "^[0-9]"; //匹配以数字开始的string
Pattern p = Pattern.compile(regEx);
Matcher m = p.matcher(name);
return m.find();
// TODO 自动生成方法存根
}
private boolean isStartCH(String name) {
String regEx = "^[\u4e00-\u9fa5]"; //匹配以汉字开始的string
Pattern p = Pattern.compile(regEx);
Matcher m = p.matcher(name);
return m.find();
// TODO 自动生成方法存根
}
private boolean isEndJPG(String name) {
String regEx = ".+\\.JPG$"; //匹配以汉字开始的string
Pattern p = Pattern.compile(regEx);
Matcher m = p.matcher(name);
return m.find();
// TODO 自动生成方法存根
}
/* private boolean isEndNum(String name) {
String regEx = "[0-9]$"; //匹配以数字结尾的string
Pattern p = Pattern.compile(regEx);
Matcher m = p.matcher(name);
return m.find();
// TODO 自动生成方法存根
}*/
}
分享到:
相关推荐
在Java读取大文件的处理中,我们需要考虑性能和响应速度,以避免程序卡顿或崩溃。 部分内容解释 在部分内容中,我们使用了以下技术来读取大文件: 1. 创建一个包含“Click me”的窗口:我们创建了一个JFrame窗口,...
本项目“JAVA对音频文件处理程序”聚焦于读取音频文件,执行降分贝操作,然后将处理后的音频保存为新的文件。这里我们将深入探讨相关的关键知识点。 首先,Java提供了一个强大的包`javax.sound.sampled`来处理音频...
Java 文件批量处理程序是一款基于 Java 平台的文件批量处理工具,旨在提供一个高效、便捷、可靠的文件批量处理解决方案。该程序主要实现了新建文件、复制、移动、删除、解压缩及分割/合并文件等功能,满足了用户对...
Java 文件扫描程序知识点总结 Java 文件扫描程序概述 本节知识点总结了 Java 文件扫描程序的基本概念、实现方法和相关...Java 文件扫描程序是一个功能强大且灵活的工具,可以帮助开发者和项目经理管理和优化代码。
Java 文件上传程序 Java 文件上传程序是指使用 ...Java 文件上传程序是一个复杂的系统,涉及到多方面的技术知识点,包括 Socket 编程、文件上传协议、文件读取和写入、线程编程、GUI 编程、文件路径处理和事件处理等。
选择器允许我们注册多个通道,并在一个单独的线程中监控它们的事件,例如可读、可写或已连接等,从而实现高并发的文件处理。 7. **效率优化**:在处理大文件时,合理设置缓冲区大小是非常关键的。太小可能导致频繁...
8. **用户界面**:为了让非技术人员也能使用,程序可能需要提供一个用户友好的界面,展示同步状态、错误信息等,以及提供配置同步规则的选项。 在给出的压缩包"bin"中,通常包含的是编译后的可执行文件或类库,用户...
- `Dimension`类代表NetCDF文件的维度,每个变量都关联了一组维度。 - 对于写入操作,可以使用`NetcdfFileWriter`类创建新的NetCDF文件,定义维度、变量,然后写入数据。 3. **实例解析** - 在描述中提到的实例...
Java程序设计中,TCP文件传输程序是一个常见的任务,它涉及到网络编程、IO流处理以及用户交互界面的设计。在这个项目中,我们使用了Java的核心库来实现客户端与服务器之间的文件交换,利用TCP(传输控制协议)作为...
通过以上步骤,我们可以编写一个Java程序,读取CHM文件,解码其内容,解析HTML,生成新的HTML文件,并保存到本地。这个过程可能涉及到对CHM结构的理解、使用特定库的API,以及处理文件I/O和异常的技巧。对于需要处理...
在Java编程语言中,复制一个目录下的所有文件到另一个目录是一项常见的任务,特别是在处理文件系统操作时。这个过程涉及到文件的遍历、读取和写入。以下将详细讲解如何实现这一功能,以及相关的Java API和技术点。 ...
这款应用程序旨在提供一个稳定的运行环境,确保在处理大量文件或执行复杂操作时不会崩溃。 在Java中,实现文件管理功能涉及到许多核心概念和技术: 1. **Swing 或 JavaFX**:这两个是Java提供的用于构建GUI的库。...
同时,为了部署到服务器环境,可能还需要处理JACOB的动态链接库(DLL)文件的路径设置,确保Java程序在运行时能找到这些库。 在实际应用中,Java Web服务通常会采用诸如Apache CXF或Spring WS这样的框架来简化Web...
这个"文件上传java测试程序.rar"是一个演示了如何在Java Web环境下实现文件上传的小项目,开发工具是IntelliJ IDEA(简称IDEA)。下面我们将深入探讨文件上传的核心知识点及其在Java中的实现方式。 1. **Servlet ...
本项目是一个基于Java编写的文件传输程序,它包括两个部分:服务端和客户端。接下来,我们将深入探讨这个程序涉及的关键知识点。 1. **Java Socket编程**: Java的Socket类是进行网络通信的基础,它允许两台计算机...
本项目源码提供了一个基本的实现,支持多线程传输,这使得它能够同时处理多个文件,提高整体传输效率。然而,由于开发者自述可能存在一些bug,因此这个程序可能需要进一步的调试和完善。 在Java中,文件传输通常...
在实际应用中,解析DBC文件的JAVA程序可能会被集成到更复杂的系统中,如汽车诊断工具、数据记录器或仿真环境。这些系统通过读取DBC文件,可以理解CAN总线上的数据流,并根据需要进行响应或模拟发送数据。 总结来说...
接下来,我们需要创建一个映射表或者一系列的条件判断,用于比较读取到的文件头字节与已知文件类型的头信息。这可以通过switch语句或者HashMap实现。例如: ```java Map, String> fileHeaders = new HashMap(); ...
Java语言中写入大数据文件是指使用Java语言编写程序将大量数据写入到文件中的一种操作。这种操作在实际应用中非常常见,如数据分析、数据挖掘、科学计算等领域。在Java中,写入大数据文件通常需要考虑文件的大小、...
由于提供的压缩包文件名称列表只有一个“ch19_FileName”,具体实现细节无法进一步展开,但可以推测这可能是程序的某个章节或者特定功能的代码文件。为了更深入理解程序的工作原理,需要查看源代码并进行分析。