① 如何利用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,你輸出是一個\,但是在字元串里是一個\\,這就是表示的形式··