如何判斷ftp是否存在某一個文件
是可以這樣判斷
但是 你要注意的是 你的程序有可能和FTP不再同一台伺服器上
所以 你要多做一些工作 你先要根據獲取FTP的IP
根據這個IP的FTP目錄 在進行判斷
2. 請問一下,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();
}
}
}
}
3. 如何使用C#確認FTP伺服器中的某個文件是否存在
你要參考一下ftp的協議,自己和服務端建立ftp連接,如果連接成功,就通過控制鏈接向伺服器發送一個查詢命令即可,判斷伺服器的應答,從而就知道文件是否存在。這個並不難實現,你作為客戶端,只需要利用套接字,按照ftp協議的規定,把需要的連接給建立起來,給伺服器發送一個查詢命令。
4. C#如何判斷FTP伺服器上的文件夾是否存在
引入IO命名空間Directory類就是用來操作文件夾的Directory.Exists(string path); 該方法用於檢查指定的文件夾在磁碟上是否存在,存在返回true,否則false
5. AIX shell 如何判斷FTP上某路徑 文件是否存在
#!/bin/bash
ftp-v-n<FTP_IP><<EOF
user<username><password>
bi
ls<REMOTE_DIR>/a.file<LOCAL_DIR>/list
prompt
ls
bye
EOF
result=`grep<LOCAL_DIR>/list`
if["$result"='']
then
echo"FILENOTFOUND"
else
echo"FILEEXISTED"
fi
rm-rf<LOCAL_DIR>/list
思路就是通過FTP將ls的結果保存到本地,本地通過grep判斷是否有列出特定文件。
6. 易語言如何查看FTP里某個文件是否存在
首先是連接FTP伺服器,然後下載整個文件名稱 如果下載成功等於真,下蘆升載失敗等於假
是這樣寫的
連接FTP伺服器(「IP地址」,「賬號」,「密碼」,21,)
如果 (FTP文件下載 (「/1/」 + 編輯框1.內容 + 「.txt」, 編輯框1.內容 + 「.txt」, ) = 真)
等於真的代碼~
等陪敬老於假的稿蔽代碼~
來個截圖吧~
7. [求助(拒絕粘貼黨回答)]批處理如何獲取FTP上某文件夾是否存在
rem大概就是這個思路,未測試有錯請諒解
@echooff
setip=192.168.1.11
setu=user
setp=password
setd=testdir
echoopen%ip%>f.txt
echo%u%>>f.txt
echo%p%>>f.txt
echocd%d%>>f.txt
echobye>>f.txt
ftp-s:f.txt>f.log
findstr550f.log&&echo文件夾%d%不存在||echo文件夾%d%存在
delf.txtf.log
8. 如何判斷ftp 路徑是否是文件夾
Shell判斷FTP上某個路徑、文件是否存在:#bin/bash#進入該目錄,把文件down在這里cd/opt/#某個路徑的某個文件變數定義f1=/file1/file2/filename;ftp-i-v-n192.x.x.x<
9. 怎麼判斷FTP文件是否存在
//////1.從ftp伺服器的指定目錄下獲得文件列表//////ftp伺服器IP(DNS)地址///對ftp伺服器上的目錄或文檔的操作方式///publicstaticvoidGetFileList(stringpath,stringWRMethods){string[]downloadFiles;WebResponseresponse=null;StreamReaderreader=null;StringBuilderresult=newStringBuilder();try{//連接ftp伺服器ConnectFtpServer(path);//設定要傳送到ftp伺服器的命令reqFTP.Method=WRMethods;//傳回ftp伺服器回應response=reqFTP.GetResponse();reader=newStreamReader(response.GetResponseStream(),Encoding.Default);stringline=reader.ReadLine();while(line!=null){if(line.Substring(line.LastIndexOf('.')+1,3)=="xml"){result.Append(line);result.Append("\n");}line=reader.ReadLine();}if(string.IsNullOrEmpty(result.ToString())==true||result.ToString().Length0){DownLoad(localFolder,downloadFiles);}reader.Close();response.Close();_job_Message+="本次讀取到的文件列表為:"+result;///刪除FTP上的文件DeleteFileName(localFolder,downloadFiles);}}catch(Exceptionex){_job_Err_Message+="3.從FTP遠端主機的根目錄下獲得文件列表時發生的錯誤訊息:"+ex.Message.ToString()+"";downloadFiles=null;}}
10. Shell 判斷FTP上某個路徑、文件是否存在
如果FTP上的文件很大,獲取文件會很費時。應該可以不用獲取直接判斷的,下面供借鑒:
#!/bin/bash
server=127.0.0.1#改為你自己的FTP伺服器IP
user=root#修改為你自己的FTP登錄用戶名
password=root#修改為你自己的FTP用戶密碼
errlog=./err.log#用於記錄FTP錯誤
ftpCheckFile()
{
ftp-n-i$server<<EOF
USER$user
PASS$password
ls$1
bye
EOF
}
rm-f$errlog
ftpCheckFile$1>/dev/null2>$errlog
bytes=`wc-c$errlog|awk'{print$1}'`
if[$bytes-eq0];then
echo"$1-Exist!"
else
echo"$1-Notexist!"
fi
用的時候在腳本名後跟一個參數,就是你要判斷的文件名或路徑名。
思路:如果文件或路徑不存在,FTP中的ls命令會執行錯誤,從而在錯誤日誌err.log中有記錄。
通過解析該錯誤日誌的內容,可以得知文件或目錄是否存在。
我這里暫時沒有環境試驗,所以沒法得知錯誤日誌的格式,只能暫且通過判斷日誌位元組大小是否為0來看是否發生了錯誤,而無法確定具體錯誤種類。