① 如何利用java正则表达式匹配路径中的文件名 D:\PjlWorkspace\monitor\ts\app-shang.xml 谢谢
/**
* @author eatonfang
* @version 1.0
*
*/
public class Test {
/**
* @param args
*/
public static void main(String[] args) {
// System.out.println()
String str1 = "D:/PjlWorkspace/monitor/ts/app-shang.xml";
String str2 = "app-shang.xml";
String regex = "[^(/|\\|\\\\|//)]+\\.[^(/|\\|\\\\|//)]+";
System.out.println(str2.matches(regex));
System.out.println(str1.replaceAll(regex, "name"));
}
}
运行结果:
true
D:/PjlWorkspace/monitor/ts/name
如果路径分隔符只有/一种可能的话,就可以这样写: [^/]+\\.[^/]+
我是考虑到路径分隔符还可以写成\, \\, //, 这几种可能,所以才写成那样子的
② java中判断文件类型
实际上 判断文件名 只需 获取该文件的名称 截取最后一个. 后面的内容 不是txt提示错误信息
1 是 把内容读出来 换成“ ” 在写进文件 2 获取该文件的文件名 ,然后把源文件删了,在以相同的名称重新建立文件
③ Java判断文件夹是否存在,不存在就创建
用File类中的exists()方法判断是否存在;
用File类中的mkdirs创建文件目录;
java代码如下:
publicFilegetFile(Filefile){
//判断文件夹是否存在
if(!file.exists()){
//不存在,则创建文件夹
file.mkdirs();
}
returnfile;
}
注意:
1. 首先明确一点的是:test.txt文件可以和test文件夹同时存在同一目录下;test文件不能和test文件夹同时存在同一目录下。
原因是:
(1)win的文件和文件夹都是以节点形式存放,这就意味着相同的文件和文件名不能处在同一目录下,会命名冲突。
2. 基于以上原因,如果我想在d:创建一个test文件夹,但是d:下面有一个test文件,那么由于命名冲突,是不可能创建成功的。
所以,在创建之前,要通过file.exists()判断是否存在test命名的文件或者文件夹,如果返回true,是不能创建的;
(2)文件后缀名也算是文件名的一部分,即test.txt文件和test文件不是相同文件名的文件。
所以,在创建之前,要通过file.exists()判断是否存在test命名的文件或者文件夹,如果返回true,是不能创建的;
然后再通过file.isDirectory()来判断这是不是一个文件夹。
import java.io.File;
import java.io.IOException;
public class Main {
public static void main(String[] args) {
File file = new File("d:\test_file.txt");
Main.judeFileExists(file);
File dir = new File("d:\test_dir");
Main.judeDirExists(dir);
}
// 判断文件是否存在
public static void judeFileExists(File file) {
if (file.exists()) {
System.out.println("file exists");
} else {
System.out.println("file not exists, create it ...");
try {
file.createNewFile();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
// 判断文件夹是否存在
public static void judeDirExists(File file) {
if (file.exists()) {
if (file.isDirectory()) {
System.out.println("dir exists");
} else {
System.out.println("the same name file exists, can not create dir");
}
} else {
System.out.println("dir not exists, create it ...");
file.mkdir();
}
}
}
④ Java中怎样根据文件的路径去判断该文件夹中是否存在该文件
1. 首先明确一点的是:test.txt文件可以和test文件夹同时存在同一目录下;test文件不能和test文件夹同时存在同一目录下。
原因是:
(1)win的文件和文件夹都是以节点形式存放,这就意味着相同的文件和文件名不能处在同一目录下,会命名冲突。
(2)文件后缀名也算是文件名的一部分,即test.txt文件和test文件不是相同文件名的文件。
2. 基于以上原因,如果我想在d:创建一个test文件夹,但是d:下面有一个test文件,那么由于命名冲突,是不可能创建成功的。
所以,在创建之前,要通过file.exists()判断是否存在test命名的文件或者文件夹,如果返回true,是不能创建的;
import java.io.File;
import java.io.IOException;
public class Main {
public static void main(String[] args) {
File file = new File("d:\test_file.txt");
Main.judeFileExists(file);
File dir = new File("d:\test_dir");
Main.judeDirExists(dir);
}// 判断文件是否存在
public static void judeFileExists(File file) {
if (file.exists()) {
System.out.println("file exists");
} else {
System.out.println("file not exists, create it ...");
try {
file.createNewFile();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
} // 判断文件夹是否存在
public static void judeDirExists(File file) {
if (file.exists()) {
if (file.isDirectory()) {
System.out.println("dir exists");
} else {
System.out.println("the same name file exists, can not create dir");
} }
else { System.out.println("dir not exists, create it ...");
file.mkdir();
}
}
}
然后再通过file.isDirectory()来判断这是不是一个文件夹。
⑤ java 根据文件名判断文件是否存在
File类自带判断文件(或者路径)是否存在的方法。举个例子:
Stringpath="D:\";
Stringfilename="test.txt";
Filefile=newFile(path+filename);
if(file.exists()){
System.out.println("文件回"+filename+"存在答");
}else{
System.out.println("文件"+filename+"不存在")
}
⑥ java删除文件夹中指定的文件,必须判断文件名吗
java删除文件夹中指定的文件,必须判断文件名。
1.File folder = new File("files")。
2.File[] files = folder.listFiles()。
3.for(File file:files){if(file.getName().equals("name.txt")){file.delete()。
⑦ java,判断中文名文件是否存在,注意:文件名含中文
import java.io.File;
public class BBB{
public static void main (String[] args){
File f=new File("c:\\山东1.txt");
boolean b=f.exists();
System.out.println(b);
}
}
判断中文名也是没有问题的,你可以在C盘下面针对这个测试一下··
我给测试过的··
你把你的东西全贴出来看看··
\是转义字符,\\转义后也就是\
String path="c:\\山东1.txt";
System.out.println(path);
输出的代码是c:\山东1.txt,你输出是一个\,但是在字符串里是一个\\,这就是表示的形式··