當前位置:首頁 » 文件傳輸 » ftp獲取文件
擴展閱讀
webinf下怎麼引入js 2023-08-31 21:54:13
堡壘機怎麼打開web 2023-08-31 21:54:11

ftp獲取文件

發布時間: 2022-01-14 19:44:42

1. 如何獲取ftp伺服器下指定文件的大小

//////獲取ftp伺服器上指定文件夾的文件列表(包含文件大小)//////////////////publicDictionaryGetFTPList(stringServerIP,stringUSERID,stringPassWord,stringpath){Dictionarydic=newDictionary();if(path==null)path="";FtpWebRequestreqFtp;try{reqFtp=(FtpWebRequest)FtpWebRequest.Create(newUri("ftp://"+ServerIP+"/"+path));reqFtp.KeepAlive=false;reqFtp.UseBinary=true;//指定ftp數據傳輸類型為二進制reqFtp.Credentials=newNetworkCredential(USERID,PassWord);//設置於ftp通訊的憑據reqFtp.Method=WebRequestMethods.Ftp.ListDirectoryDetails;//指定操作方式WebResponseresponse=reqFtp.GetResponse();//獲取一個FTP響應StreamReaderreader=newStreamReader(response.GetResponseStream(),Encoding.GetEncoding("GB2312"));//讀取響應流stringline=reader.ReadLine();while(line!=null){if(line!="."&&line!=".."){intend=line.LastIndexOf('');intstart=line.IndexOf("");stringfilename=line.Substring(end+1);if(filename.Contains(".")){line=line.Replace(filename,"");dic.Add(filename.Trim(),int.Parse(line.Substring(start).Trim()));}}line=reader.ReadLine();}}catch(Exceptionex){Console.WriteLine(ex.Message);}returndic;}文件夾或者某一文件都適用

2. 怎麼打開一個FTP上的文件

用FTP命令打開一個文本文件的具體方法如下:
DOS下或工具下都不能直接在伺服器上打開文件,一定要下載下來才能打開的!GET命令用來獲取文件。如果你想在默認目錄使用原始文件名下載文件,你要輸入GET <filename> <回車> .
可以只輸入GET,系統會提示要下載的文件名,然後提示存儲到的新文件名(及目錄)。 ftp> get readme.txt 200 PORT command successful. 150 Opening BINARY mode data connection for readme.txt(1571 bytes). 226 Transfer complete. 1571 bytes received in 3.46 seconds (0.45 Kbytes/sec)
上傳 。可以使用SEND命令上傳文件。當然伺服器要允許上傳文件才行。

3. 怎麼獲取ftp伺服器上指定文件的大小

可以用原始指令
size [path]filename
如果文件存在 返迴文件長度
否則返回5xx 失敗

4. java怎麼獲取ftp文件的路徑

public static void main(String[] args) {
// TODO Auto-generated method stub
// 創建File對象
File file = new File("d:\\");
// 使用遞歸方法做
dg(file);
}

private static void dg(File fl) {
// TODO Auto-generated method stub
// 創建file數組用來存儲數據
File[] filArr = fl.listFiles();
// 判斷FiLe數組不能為空
if (filArr != null) {
// 使用for遍歷
for (File f : filArr) {
// 如果是文件夾 就遞歸
if (f.isDirectory()) {
// 遞歸
dg(f);
} else if (f.isFile()) {

System.out.println(f.getAbsolutePath());
}
}
}
}

5. VB 如何獲取FTP上的文件

要用到inet控制項。public strData as string
'這段可以返回伺服器中的第一級目錄名,保存在strData中, 如有多個文件夾名每個文件夾名會以空格分開。讀取時判段一下。
Inet1.Execute Inet1.URL, "dir """ & dirName & """"
Do
DoEvents
Loop While Inet1.StillExecuting = True
msgbox strData
'這段是進入目錄中,要想獲得伺服器中所有的文件夾名,就可以用遞規的辦法來獲得。
Inet1.Execute Inet1.URL, "cd """ & dirName & """"
Do
DoEvents
Loop While Inet1.StillExecuting = True
Private Sub Inet1_StateChanged(ByVal State As Integer)
Select Case State
Case 1

StatusBar1.Panels.Item(1).Text = "該控制項正在查詢所指定的主機的 IP 地址"

Case 2

StatusBar1.Panels.Item(1).Text = "該控制項已成功地找到所指定的主機的 IP 地址"

Case 3

StatusBar1.Panels.Item(1).Text = "該控制項正在與主機連接"

Case 4

StatusBar1.Panels.Item(1).Text = "該控制項已與主機連接成功"

Case 5

StatusBar1.Panels.Item(1).Text = "該控制項正在向主機發送請求"

Case 6

StatusBar1.Panels.Item(1).Text = "該控制項發送請求已成功"

Case 7

StatusBar1.Panels.Item(1).Text = "該控制項正在接收主機的響應"

Case 8

StatusBar1.Panels.Item(1).Text = "該控制項已成功地接收到主機的響應"

Case 9

StatusBar1.Panels.Item(1).Text = "該控制項正在解除與主機的連接"

Case 10

StatusBar1.Panels.Item(1).Text = "該控制項已成功地與主機解除了連接"

Case 11
MsgBox "與主機通訊時出現了錯誤", vbInformation, "個人資料"
Case 12
Dim vtData As Variant
Dim bDone As Boolean
bDone = False
'取得第一個塊。
vtData = Inet1.GetChunk(1024, icString)
DoEvents
Do While Not bDone
strData = strData & vtData
'取得下一個塊。
vtData = Inet1.GetChunk(1024, icString)
DoEvents
If Len(vtData) = 0 Then
bDone = True
End If
Loop
StatusBar1.Panels.Item(1).Text = "該請求已經完成,並且所有數據均已接收到"
Case Else
StatusBar1.Panels.Item(1).Text = Inet1.ResponseCode & ": " & Inet1.ResponseInfo
End Select
End Sub
關於inet控制項的祥細用法可以看msdn中的幫助。

6. 如何訪問ftp站點並獲取資料

間接下載資源工具:FlashFXP v3.40 多國語言版 http://www.crsky.com/soft/1183.html
迅雷5 的 ftp探測器 http://down.sandai.net:8080/Thunder5.1.3.168.exe
flashget (網際快車) http://www.onlinedown.net/soft/15.htm
cuteftp http://down.crsky.com/DL/cuteftp71-chs.rar
以上均是很好的ftp下載工具

直接訪問下載方法:在地址欄中,鍵入要連接的 FTP 站點的 Internet 地址 (URL)。例如:ftp://ftp.microsoft..com/
要下載文件或文件夾,請用右鍵單擊 Web 頁中的項目,然後單擊「下載到」。
要以其他用戶身份登錄到此 FTP 站點,請單擊「文件」菜單,然後單擊「登錄」。

要重命名或刪除 FTP 文件夾中的項目或將項目粘貼到 FTP 站點(上載),可以使用與「Windows 資源管理器」或「我的電腦」相同的命令和操作。

注意

在部分 FTP 站點上,只能查看或下載文件。只有運行或擁有站點的人才能重命名、刪除或上載文件。
在許多 FTP 站點上,您都可以自動匿名登錄,從而查看或下載文件。要上載、重命名或刪除文件,可能需要使用特殊的用戶名和密碼登錄。同時,相同站點的不同區域也可能需要進行不同的登錄。
文件不能在 FTP 站點內部和站點之間移動。您可以從 FTP 站點將文件移動到您的計算機或網路驅動器上的臨時位置,然後再將它們上載到另一個 FTP 站點或相同站點的其他文件夾中。
部分程序允許在「文件打開」或「文件保存」對話框中鍵入 FTP 地址,從而打開和保存 FTP 伺服器上的

7. FTP獲取文件名以及文件路徑

既然是伺服器,而且是linux 你用一個tomcat 當做伺服器,可以配置一下tomcat,就可以直接ftp 模式訪問文件夾了。

8. 怎麼利用IdFTP控制項獲取FTP伺服器端某個子文件目錄中的文件列表

----解決方案--------------------
FTPClient.List(list);
for i:=0 to list.Count-1 do
begin
Attribute:=FTPClient.DirectoryListing.Items[i].ItemType;
if Attribute=ditDirectory then
begin
showmessage('目錄:'+FTPClient.DirectoryListing.Items[i].FileName);
end
else if Attribute=ditFile then
begin
showmessage('文件:'+FTPClient.DirectoryListing.Items[i].FileName);
end
else
begin
showmessage('其它:'+FTPClient.DirectoryListing.Items[i].FileName);
end;
end;

9. 怎麼獲取ftp的路徑

問一下,你是想做ftp上傳下載么?

首先你需要安裝一個ftp服務端程序,啟動起來,然後下載一個ftp客戶端程序,測試能不能連接,首先這一塊兒需要測試通過。
代碼ftp上傳下載
2.1 上傳代碼:
import java.io.File;
import java.io.FileInputStream;
import org.apache.commons.net.ftp.FTPClient;
import org.apache.commons.net.ftp.FTPReply;

public class test {

private FTPClient ftp;
/**
*
* @param path 上傳到ftp伺服器哪個路徑下
* @param addr 地址
* @param port 埠號
* @param username 用戶名
* @param password 密碼
* @return
* @throws Exception
*/
private boolean connect(String path,String addr,int port,String username,String password) throws Exception {
boolean result = false;
ftp = new FTPClient();
int reply;
ftp.connect(addr,port);
ftp.login(username,password);
ftp.setFileType(FTPClient.BINARY_FILE_TYPE);
reply = ftp.getReplyCode();
if (!FTPReply.isPositiveCompletion(reply)) {
ftp.disconnect();
return result;
}
ftp.changeWorkingDirectory(path);
result = true;
return result;
}
/**
*
* @param file 上傳的文件或文件夾
* @throws Exception
*/
private void upload(File file) throws Exception{
if(file.isDirectory()){
ftp.makeDirectory(file.getName());
ftp.changeWorkingDirectory(file.getName());
String[] files = file.list();
for (int i = 0; i < files.length; i++) {
File file1 = new File(file.getPath()+"\\"+files[i] );
if(file1.isDirectory()){
upload(file1);
ftp.changeToParentDirectory();
}else{
File file2 = new File(file.getPath()+"\\"+files[i]);
FileInputStream input = new FileInputStream(file2);
ftp.storeFile(file2.getName(), input);
input.close();
}
}
}else{
File file2 = new File(file.getPath());
FileInputStream input = new FileInputStream(file2);
ftp.storeFile(file2.getName(), input);
input.close();
}
}
public static void main(String[] args) throws Exception{
test t = new test();
t.connect("", "localhost", 21, "yhh", "yhhazr");
File file = new File("e:\\uploadify");
t.upload(file);
}
}
2.2 下載代碼
這里沒有用到filter,如果用filter就可以過濾想要的文件。

public class Ftp {

/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
Ftp ftp = new Ftp();
String hostname = "www.strawberry.com";
Integer port = 21;
String username = "username";
String password = "password";
String remote = "/c.txt";
String local = "/home/tin/LeonChen/FTP/";
try {
ftp.connect(hostname, port, username, password);
System.out.println("接收狀態:"+ftp.download(remote, local));
ftp.disconnect();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}

private FTPClient ftpClient = new FTPClient();

/*
* * 連接到FTP伺服器
* * @param hostname 主機名
* * @param port 埠
* * @param username 用戶名
* * @param password 密碼
* * @return 是否連接成功
* * @throws IOException
*/
private boolean connect(String hostname, int port, String username,
String password) throws IOException {
ftpClient.connect(hostname, port);
ftpClient.setControlEncoding("UTF-8");
if (FTPReply.isPositiveCompletion(ftpClient.getReplyCode())) {
if (ftpClient.login(username, password)) {
return true;
}
}
disconnect();
return false;
}

/*
* 從FTP伺服器上下載文件,支持斷點續傳,上傳百分比匯報
*
* @param remote 遠程文件路徑
*
* @param local 本地文件路徑
*
* @return 上傳的狀態
*
* @throws IOException
*/
public DownloadStatus download(String remote, String local)
throws IOException {
// 設置被動模式
ftpClient.enterLocalPassiveMode();
// 設置以二進制方式傳輸
ftpClient.setFileType(FTP.BINARY_FILE_TYPE);
DownloadStatus result;
// 檢查遠程文件是否存在
FTPFile[] files = ftpClient.listFiles(new String(remote
.getBytes("UTF-8"), "iso-8859-1"));
if (files.length != 1) {
System.out.println("遠程文件不存在");
return DownloadStatus.Remote_File_Noexist;
}
long lRemoteSize = files[0].getSize();
String fildName = files[0].getName();
// 本地存在文件,進行斷點下載
File f = new File(local+fildName);
if (f.exists()) {
long localSize = f.length();
if (localSize >= lRemoteSize) {
System.out.println("本地文件大於遠程文件,下載中止");
return DownloadStatus.Local_Bigger_Remote;
}

// 進行斷點續傳,並記錄狀態
FileOutputStream out = new FileOutputStream(f, true);
ftpClient.setRestartOffset(localSize);
InputStream in = ftpClient.retrieveFileStream(new String(remote.getBytes("UTF-8"), "iso-8859-1"));
byte[] bytes = new byte[1024];
long step = lRemoteSize / 100;
long process = localSize / step;
int c;
while ((c = in.read(bytes)) != -1) {
out.write(bytes, 0, c);
localSize += c;
long nowProcess = localSize / step;
if (nowProcess > process) {
process = nowProcess;
if (process % 10 == 0)
System.out.println("下載進度:" + process);
// TODO 更新文件下載進度,值存放在process變數中
}
}
in.close();
out.close();
boolean isDo = ftpClient.completePendingCommand();
if (isDo) {
result = DownloadStatus.Download_From_Break_Success;
} else {
result = DownloadStatus.Download_From_Break_Failed;
}
} else {
OutputStream out = new FileOutputStream(f);
InputStream in = ftpClient.retrieveFileStream(new String(remote.getBytes("UTF-8"), "iso-8859-1"));
byte[] bytes = new byte[1024];
long step = lRemoteSize / 100;
long process = 0;
long localSize = 0L;
int c;
while ((c = in.read(bytes)) != -1) {
out.write(bytes, 0, c);
localSize += c;
long nowProcess = localSize / step;
if (nowProcess > process) {
process = nowProcess;
if (process % 10 == 0)
System.out.println("下載進度:" + process);
// TODO 更新文件下載進度,值存放在process變數中
}
}
in.close();
out.close();
boolean upNewStatus = ftpClient.completePendingCommand();
if (upNewStatus) {
result = DownloadStatus.Download_New_Success;
} else {
result = DownloadStatus.Download_New_Failed;
}
}
return result;
}

private void disconnect() throws IOException {
if (ftpClient.isConnected()) {
ftpClient.disconnect();
}
}

}

10. 用JAVA獲取FTP文件列表

學習一下ftp協議,然後用socket來模擬就可以了