java判斷文件夾是否存在
① 請問一下,java中有沒直接判斷ftp上文件夾下是否存在某文件的方法通過遍歷文件夾的方式判斷太耗內存了
第一個種方法 :
org.apache.commons.net.ftp.* 看這個目錄下是否有你要的方法
第二種方法:
package com.soft4j.log4j;
import java.io.IOException;
import sun.net.ftp.FtpClient;
public class FtpTest
{
static String middle_ftpServer = "10.103.2.250";
static String middle_user = "ora9iftp";
static String middle_password = "ftp";
static String middle_dir = "/image/NWKPHOTO/Middle/2009/3";
public static void main(String[] args)
{
FtpClient ftpClient = new FtpClient();
try
{
ftpClient.openServer(middle_ftpServer);
ftpClient.login(middle_user, middle_password);
FtpTest ft = new FtpTest();
ft.isDirExist(ftpClient, middle_dir);
} catch (IOException e)
{
e.printStackTrace();
}
}
/** 判斷Ftp目錄是否存在,如果不存在則創建目錄 */
public void isDirExist(FtpClient ftpClient, String dir)
{
try
{
ftpClient.cd(dir); //想不到什麼好辦法來判斷目錄是否存在,只能用異常了(比較笨).請知道的告訴我一聲`
} catch (IOException e1)
{
ftpClient.sendServer("MKD " + dir + "\r\n");
try
{
ftpClient.readServerResponse();
} catch (IOException e)
{
e.printStackTrace();
}
}
}
}
② 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.File testFile = new File(testFilePath);
if(!testFile .exists()){
testFile.mkdirs();
System.out.println("測試文件夾不存在");
}
2.File testFile = new File(testFilePath);
if(!testFile .exists()){
testFile.createNewFile();
System.out.println("測試文件不存在");
}
java中File類自帶一個檢測方法exists可以判斷文件或文件夾是否存在,一般與mkdirs方法(該方法相較於mkdir可以創建包括父級路徑,推薦使用該方法)或者createNewFile方法合作使用。
1,如果路徑不存在,就創建該路徑
2,如果文件不存在,就新建該文件
④ java 判斷文件夾下是否有文件夾
Filef=newFile("d:/aaa");
if(f.isDirectory()){//判斷是不是目錄
File[]F1=f.listFiles();//獲取目錄下文件列表
for(Filef2:F1){//循環文件列表
if(f2.isDirectory()){//判斷是不是目錄
}else{//是文件
}
}
}