當前位置:首頁 » 文件管理 » cftp文件列表

cftp文件列表

發布時間: 2022-03-12 17:41:41

c語言怎麼讀取ftp上的文件

這樣沒法做到
可以用shell腳本來實現

② C++ 怎麼獲取FTP上所有的文件夾還有所有文件

通過CFtpFileFind遞歸進行查詢,如果沒有文件,會返回false,就不用進行再查找了。如果有文件或文件夾,通過getnext進行遍歷查看就行

③ C# 獲取Ftp某個目錄下的所有文件(不要文件夾)

我在之前做過一個FTP的客戶端工具。
drw 文件夾
-rw 文件(有擴展名或無擴展名)
我是根據服務端返回的報文進行分析獲取的列表。
給你一些代碼片段:
/// <summary>
/// 獲取指定目錄下的文件和文件夾。
/// </summary>
/// <param name="path">要獲取的目錄</param>
/// <param name="WRMethods">要發送到FTP伺服器的密令。</param>
/// <returns></returns>
public string[] GetFileList(string path, string WRMethods)//從ftp伺服器上獲得文件列表
{
WebResponse response;
string[] downloadFiles;
int conut = 4;
StringBuilder result = new StringBuilder();
Connect(path);
if (FTPVariable.IsUseProxy_ftp)
{
reqFTP.Proxy = FtpProxy.GetFtpSelectProxy(FTPVariable.FtpCommand_transferProxyName);
}
reqFTP.ReadWriteTimeout = 12000;
//如果不應銷毀到伺服器的連接,則為 true;否則為 false。默認值為 true。
//
reqFTP.Method = WRMethods;
try
{
response = (FtpWebResponse)reqFTP.GetResponse();
goto Ftp_lbl_03;
}
catch (WebException webex)
{
GetReply(webex.Message);
if (ReplyCode == 530)// 未登錄。
{
goto Ftp_lbl_04;
}
else if (ReplyCode == 550)
{
goto Ftp_lbl_04;
}
else
{
FtpManage.SetLog("獲取列表超時,等候1秒後重試!");
goto Ftp_lbl_01;
}
}
Ftp_lbl_01:
try
{
FtpManage.SetLog("正在連接伺服器 " + FtpRemoteHost);
response = GetRequest(path, WRMethods);
}
catch (WebException)
{
FtpManage.SetLog("獲取列表超時,等候1秒後重試!");
downloadFiles = null;
System.Threading.Thread.Sleep(1000);
if (conut == 0)
{
goto Ftp_lbl_02;
}
conut--;
goto Ftp_lbl_01;
}
catch (Exception ex)
{
MSG.Show(ex.Message, Global.GetRS["msgTilteError"], MessageBoxButton.OK, MsgIco.Error);
FtpManage.SetLog("命令執行失敗,原因:" + ex.Message);
downloadFiles = null;
return downloadFiles;
}
Ftp_lbl_03:
StreamReader reader = new StreamReader(response.GetResponseStream(), System.Text.Encoding.Default);//中文文件名
string line = reader.ReadLine();
while (line != null)
{
result.Append(line);
result.Append("\n");
line = reader.ReadLine();
}
if (result.Length == 0)
{
return null;
}
// to remove the trailing '\n'
result.Remove(result.ToString().LastIndexOf('\n'), 1);
reader.Close();
response.Close();
FtpManage.SetLog("命令已成功執行");
return result.ToString().Split('\n');
Ftp_lbl_04:
FtpManage.SetLog(ReplyInfo);
return null;
Ftp_lbl_02:
FtpManage.SetLog("550 獲取列表失敗,無法連接遠程伺服器!");
FtpManage.ftpmanage.IsRefurbish = true;
return null;
}
/// <summary>
/// 獲取指定目錄下的文件和文件夾。
/// </summary>
/// <param name="path">要獲取的目錄</param>
/// <returns></returns>
public string[] GetFileList(string path)//從ftp伺服器上獲得文件列表
{
return GetFileList(FTPVariable.FtpURLhead + FtpRemoteHost + "/" + path, WebRequestMethods.Ftp.ListDirectory);
}

/// <summary>
/// 獲取指定目錄下的文件和文件夾。
/// </summary>
/// <returns></returns>
public string[] GetFileList()//從ftp伺服器上獲得文件列表
{
return GetFileList(FTPVariable.FtpURLhead + FtpRemoteHost + "/", WebRequestMethods.Ftp.ListDirectory);
}

/// <summary>
/// 獲取目錄和文件名,返回目錄表。
/// </summary>
/// <param name="path">要獲取的目錄</param>
/// <returns></returns>
public string[] GetCatalog_FileList(string path)
{
string[] fountainhead = GetFileList(FTPVariable.FtpURLhead + FtpRemoteHost + "/" + path, WebRequestMethods.Ftp.ListDirectoryDetails);
string[] Catalog = null;
if (fountainhead == null)
{
return null;
}
Catalog = new string[fountainhead.Length];
for (int i = 3; i < fountainhead.Length; i++)
{
Catalog[i - 3] += fountainhead[i].Substring(55, fountainhead[i].Length - 55) + "&";//FileName
Catalog[i - 3] += fountainhead[i].Substring(30, 12) + "&";//FileSize
Catalog[i - 3] += fountainhead[i].Substring(42, 13) + "&";//AmendDate
Catalog[i - 3] += fountainhead[i].Substring(0, 3) + "&";
}
return Catalog;
}

④ 怎麼用cftpconnection類編寫向ftp server上傳文件

為了與FTP Internet伺服器通訊,必須先創建一個CInternetSession實例,然後創建CFtpConnection對象。創建CFtpConnection對象不採用直接方式,而是調用CInternetSession::GetFtpConnertion來創建並返回一個指向它的指針。

CFtpConnection類的成員

構造函數 CFtpConnection 構造一個CFtpConnection對象

操作 SetCurrentDirectory 設置當前FTP目錄

GetCurrentDirectory 獲取此次連接的當前目錄

GetCurrentDirectoryAsURL 獲取作為URL的此次連接的當前目錄

RemoveDirectory 從伺服器移去指定目錄

CreateDirectory 在伺服器上構造一個目錄

Rename 將伺服器上的文件改名

Remove 從伺服器上移去一個文件

PutFile 將一個文件放到伺服器上

GetFile 從連接的伺服器上獲取一個文件

OpenFile 在連接的伺服器上打開一個文件

Close 關閉與伺服器的連接

實例一:上傳文件
CString strAppName = AfxGetAppName();
CInternetSession* pSession = new CInternetSession(strAppName);
CFtpConnection* pConn = pSession->GetFtpConnection("
10.46.1.232","Anonymous","",21);
pConn->SetCurrentDirectory("test");
CString strLocfile,strRemotefile;
strLocfile="C:\\cmd.txt";
strRemotefile="cmd.txt";
pConn->PutFile(strLocfile,strRemotefile,FTP_TRANSFER_TYPE_ASCII);
pConn->Close();
return 0;
實例二:Ftp的打開文件操作函數:OpenFile

⑤ FTP外網可以登錄但無法獲取文件列表

  1. 要麼ftp客戶端換用CuteFTP9.x,試;

  2. 要麼ftp服務端指定IP(Use the following IP): 為公網的IP;

    兩種都試下,我在區域網用無線路由器試,能成功。

    但在家裡用公網試不成功的原因是,我的寬頻網是NAT代理式的,

    沒有獨立的埠,所以失敗。你把騰訊號留下,我跟你一起試。

⑥ 用JAVA獲取FTP文件列表

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

linux下用c語言編程遍歷遠程ftp(linux系統)指定目錄下的文件

FindFile FindNextFile

⑧ 請列出FTP的常見命令

1、DOS方式下FTP的使用

可在Windows系統cmd命令提示符下,輸入
C: >FTP 域名
USER NAME: 管理員帳號
PASSWORD: 口令
FTP>PUT
LOCAL FILE: filename
REMOTE FILE: filename
即可上傳
下載時使用GET命令
2、FTP常用命令

Ftp命令的功能是在本地機和遠程機之間傳送文件。該命令的一般格式如下:
c:> ftp 主機名/IP
最常用的命令有:
ls 列出遠程機的當前目錄
cd 在遠程機上改變工作目錄
lcd 在本地機上改變工作目錄
ascii 設置文件傳輸方式為ASCII模式
binary 設置文件傳輸方式為二進制模式
close 終止當前的ftp會話
hash 每次傳輸完數據緩沖區中的數據後就顯示一個#號
get(mget) 從遠程機傳送指定文件到本地機
put(mput) 從本地機傳送指定文件到遠程機
open 連接遠程ftp站點
quit 斷開與遠程機的連接並退出ftp
? 顯示本地幫助信息
3.Linux下FTP命令詳解

FTP> ! 從 ftp 子系統退出到外殼。
FTP> ? 顯示 ftp 命令說明。? 與 help 相同。
格式:? [command]
說明:[command]指定需要幫助的命令名稱。如果沒有指定 command,ftp 將顯示全部命令的列表。
FTP> append 使用當前文件類型設置將本地文件附加到遠程計算機上的文件。
格式:append local-file [remote-file]
說明:local-file 指定要添加的本地文件。
remote-file 指定要添加 local-file 的遠程計算機上的文件。如果省略了 remote-file,本地文件名將被用作遠程文件名。
FTP> ascii 將文件傳送類型設置為默認的 ASCII。
說明:FTP 支持兩種文件傳送類型,ASCII 碼和二進制圖像。在傳送文本文件時應該使用ASCII。
FTP> bell 切換響鈴以在每個文件傳送命令完成後響鈴。默認情況下,鈴聲是關閉的。
FTP> binary(或bi) 將文件傳送類型設置為二進制。
FTP> bye(或by) 結束與遠程計算機的 FTP 會話並退出 ftp。
FTP> cd 更改遠程計算機上的工作目錄。
格式:cd remote-directory
說明:remote-directory 指定要更改的遠程計算機上的目錄。
FTP> close 結束與遠程伺服器的 FTP 會話並返回命令解釋程序。
FTP> debug 切換調試。當調試打開時,發送到遠程計算機的每個命令都列印,前面是字元串「>」。默認情況下,調試是關閉的。
FTP> delete 刪除遠程計算機上的文件。
格式:delete remote-file
說明:remote-file 指定要刪除的文件。
FTP> dir 顯示遠程目錄文件和子目錄列表。
格式:dir [remote-directory] [local-file]
說明:remote-directory 指定要查看其列表的目錄。如果沒有指定目錄,將使用遠程計算機中的當前工作目錄。Local-file 指定要存儲列表的本地文件。如果沒有指定,輸出將顯示在屏幕上。
FTP> disconnect 從遠程計算機斷開,保留 ftp 提示。
FTP> get 使用當前文件轉換類型將遠程文件復制到本地計算機。
格式:get remote-file [local-file]
說明:remote-file 指定要復制的遠程文件。
Local-file 指定要在本地計算機上使用的名稱。如果沒有指定,文件將命名為 remote-file。
FTP >glob 切換文件名組合。組合允許在內部文件或路徑名中使用通配符(*和?)。默認情況下,組合是打開的。
FTP >hash 切換已傳輸的每個數據塊的數字簽名 (#) 列印。數據塊的大小是2048 位元組。默認情況下,散列符號列印是關閉的。
FTP >help 顯示 ftp 命令說明。
格式:help [command]
說明:command 指定需要有關說明的命令的名稱。如果沒有指定 command,ftp 將顯示全部命令的列表。
FTP >lcd 更改本地計算機上的工作目錄。默認情況下,工作目錄是啟動 ftp 的目錄。
格式:lcd [directory]
說明:directory 指定要更改的本地計算機上的目錄。如果沒有指定directory,將顯示本地計算機中當前的工作目錄。
FTP >literal 將參數逐字發送到遠程 FTP 伺服器。將返回單個的 FTP 回復代碼。
格式:literal argument [ ...]
說明:argument 指定要發送到 FTP 伺服器的參數。
FTP >ls 顯示遠程目錄文件和子目錄的縮寫列表。
格式:ls [remote-directory] [local-file]
說明:remote-directory 指定要查看其列表的目錄。如果沒有指定目錄,將使用遠程計算機中的當前工作目錄。 local-file 指定要存儲列表的本地文件。如果沒有指定,輸出將顯示在屏幕上。
FTP >mdelete 刪除遠程計算機上的文件。
格式:mdelete remote-files [ ...]
說明:remote-files 指定要刪除的遠程文件。
FTP >mdir 顯示遠程目錄文件和子目錄列表。可以使用 mdir 指定多個文件。
格式:mdir remote-files [ ...] local-file
說明:remote-files 指定要查看列表的目錄。必須指定 remote-files。請鍵入 - 使用遠程計算機上的當前工作目錄。
local-file 指定要還原列表的本地文件。請鍵入- 在屏幕上顯示列表。
FTP >mget 使用當前文件傳送類型將遠程文件復制到本地計算機。
格式:mget remote-files [ ...]
說明:remote-files 指定要復制到本地計算機的遠程文件。
FTP >mkdir 創建遠程目錄。
格式:mkdir directory
說明:directory 指定新的遠程目錄的名稱。
FTP >mls 顯示遠程目錄文件和子目錄的縮寫列表。
格式:mls remote-files [ ...] local-file
說明:remote-files 指定要查看列表的文件。必須指定 remote-files;
請鍵入- 使用遠程計算機上的當前工作目錄。
local-file 指定要存儲列表的本地文件。請鍵入 - 以在屏幕上顯示列表。
FTP >mput 使用當前文件傳送類型將本地文件復制到遠程計算機上。
格式:mput local-files [ ...]
說明:local-files 指定要復制到遠程計算機的本地文件
FTP >open 與指定的 FTP 伺服器連接。
格式:open computer [port]
說明:computer 指定要連接的遠程計算機。可以通過 IP 地址或計算機名稱指定計算機(DNS 或主機文件必須可用)。如果自動登錄打開(默認),ftp 還將嘗試自動將用戶登錄到 FTP 伺服器port 指定用來聯系 FTP 伺服器的埠號。
FTP >prompt 切換提示。如果關閉提示時 mget 及 mput 傳送所有文件,Ftp在多文件傳送過程中將提示允許您有選擇地檢索或存儲文件。默認情況下,提示是
打開的。
FTP >put 使用當前文件傳送類型將本地文件復制到遠程計算機上。
格式:put local-file [remote-file]
說明:local-file 指定要復制的本地文件。
remote-file 指定要在遠程計算機上使用的名稱。如果沒有指定,文件將命名為 local-file。
FTP >pwd 顯示遠程計算機上的當前目錄。
FTP >quit 結束與遠程計算機的 FTP 會話並退出 ftp。
FTP >quote 將參數逐字發送到遠程 FTP 伺服器。將返回單個的 FTP 回復代碼。
Quote 與 literal 相同。
格式:quote argument [ ...]
說明:argument 指定要發送到 FTP 伺服器的參數。
FTP >recv 使用當前文件傳送類型將遠程文件復制到本地計算機。Recv 與 get相同。
格式:recv remote-file [local-file]
說明:remote-file 指定要復制的遠程文件。
local-file 指定要在本地計算機上使用的名稱。如果沒有指定,文件將命名為 remote-file。
FTP >remotehelp 顯示遠程命令幫助。
格式:remotehelp [command]
說明:command 指定需要幫助的命令的名稱。如果沒有指定 command,ftp將顯示全部遠程命令的列表。
FTP >rename 重命名遠程文件。
格式:rename filename newfilename
說明:filename 指定要重命名的文件。 newfilename 指定新的文件名。
FTP >rmdir 刪除遠程目錄。
格式:rmdir directory
說明:directory 指定要刪除的遠程目錄的名稱。
FTP >send 使用當前文件傳送類型將本地文件復制到遠程計算機上。Send 與put 相同。
格式:send local-file [remote-file]
說明:local-file 指定要復制的本地文件。 remote-file 指定要在遠程計算機上使用的名稱。如果沒有指定,文件將命名為 local-file。
FTP >status 顯示 FTP 連接和切換的當前狀態。
FTP >trace 切換數據包跟蹤。Trace 在運行 ftp 命令時顯示每個數據包的路由。
FTP >type 設置或顯示文件傳送類型。
格式:type [type-name]
說明:type-name 指定文件傳送類型。默認設置為 ascii。如果沒有指定type-name,將顯示當前的類型。
FTP >user 指定遠程計算機的用戶。
格式:user username [password] [account]
說明:user-name 指定登錄到遠程計算機所使用的用戶名。password 指定 user-name 的密碼。如果沒有指定,但必須指定,ftp 會提示輸入密碼。
account 指定登錄到遠程計算機所使用的帳戶。如果沒有指定account,但是需要指定,ftp 會提示您輸入帳戶。
FTP >verbose 切換 verbose 模式。如果打開,將顯示所有 ftp 響應。在文件傳送完成後,將同時顯示與傳送效率有關的統計信息。默認情況下,verbose 是打開的。

⑨ cftpfilefind怎麼獲取linux ftp伺服器文件列表呢是不是這個cftpfilefi

問題: ftp客戶端下載目錄數據很慢,而此目錄是掛載了NFS共享目錄

現象: 使用ftp客戶端訪問nfs目錄,下載上傳速度 0.7kb/s, 而且對於零散的小文件(總共幾百K),
每次傳輸新文件, 都會有30-40s的等待時間,400k文件要5分鍾。
ftp配置如下:
[root@IDC-D-144 vsftpd]# cat vsftpd.conf|grep -v '#'
anonymous_enable=NO
local_enable=YES
write_enable=YES
local_umask=022
dirmessage_enable=YES
xferlog_enable=YES
connect_from_port_20=YES
xferlog_std_format=YES
ls_recurse_enable=YES
pam_service_name=vsftpd
userlist_enable=YES
listen=YES
tcp_wrappers=YES
chroot_list_enable=YES >>>>> 啟用改變用戶登錄默認目錄
chroot_list_file=/etc/vsftpd/chroot_list >>>>> 允許登錄更改目錄的用戶列表
user_config_dir=/etc/vsftpd/vsftpd_user_conf >>>>>> 目錄下記錄著每個用戶的默認登錄地址
[root@IDC-D-144 vsftpd]# cat chroot_list
suns
hanjun
[root@IDC-D-144 vsftpd]#
[root@IDC-D-144 vsftpd]# cd vsftpd_user_conf/
[root@IDC-D-144 vsftpd_user_conf]# ls
hanjun suns
[root@IDC-D-144 vsftpd_user_conf]# cat hanjun
local_root=/usr/local/apache2059/htdocs/hipiao/
[root@IDC-D-144 vsftpd_user_conf]#
這樣用戶hanjun登錄就會直接進入目錄 /usr/local/apache2059/htdocs/hipiao/
vsftpd 的部分就是這樣。
下載上傳速度慢也是想了很多辦法,是不是內外網問題? 是不是路由設置問題? 。。。
最後查到可能與NFS有關。 出現幾個服務名:nfslock 、 portmap 、rpc
講一下NFS的埠連接知識:
因為NFS支持的功能相當的多,而不同的功能都會使用不同的程序來啟動,沒啟動一個功能就會啟用一些
埠來傳輸資料,因此,NFS的功能所隨影的埠沒有固定住,而是隨機取用一些未被使用的小於1024的
埠來作為傳輸之用。但如此一來又造成用戶端想要連上伺服器時的困擾,因為用戶端得要知道伺服器端的
相應埠才能夠連接吧。

⑩ C語言如何連接FTP,連接成功後遍歷FTP下目錄,包括子目錄,要源代碼,而且是成功案例,自以為是的靠邊站!

用libcurl實現,具體代碼看
http://curl.haxx.se/libcurl/c/ftpget.html

熱點內容
xp電腦開機密碼怎麼設置 發布:2024-10-30 15:25:57 瀏覽:784
壓縮包文件亂碼 發布:2024-10-30 15:19:05 瀏覽:847
電腦的密碼怎麼改密碼怎麼設置路由器設置 發布:2024-10-30 15:04:53 瀏覽:270
安卓手機充電電量倒退是什麼原因 發布:2024-10-30 15:04:03 瀏覽:839
vb顯示資料庫數據 發布:2024-10-30 15:03:50 瀏覽:290
國外php 發布:2024-10-30 14:59:34 瀏覽:72
androidcheckbox位置 發布:2024-10-30 14:52:39 瀏覽:807
linux內核與linux系統 發布:2024-10-30 14:51:40 瀏覽:962
whilelooppython 發布:2024-10-30 14:47:12 瀏覽:260
安卓手機如何取消優化應用 發布:2024-10-30 14:23:34 瀏覽:319