當前位置:首頁 » 文件管理 » cftp類庫

cftp類庫

發布時間: 2022-11-27 08:53:29

① vc 編程 CftpConnection類的getfile函數問題 !

你可以在返回失敗後調用GetLastError看看返回哪個錯誤碼,然後去查下這個錯誤碼對應的錯誤原因是什麼,這樣大家也好大致定位錯誤原因。

② VBA如何訪問ftp路徑的文件

需要先判斷該文件是否存在。
VBA是到一個ftp伺服器上打開指定的文件,但是需要先判斷該文件是否存在,在那個cFTP的類中找到一段代碼。

③ 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;
}

④ 用c語言寫一個FTP的客戶端程序,需要了解哪些知識

一、需要的知識點:
1、SOCKET技術,網路編程的基本功能
2、FTP
3、如果需要自己寫,可能需要熟悉各個網路框架
二、編寫FTP所需要掌握的框架
1、wininet
2、libcurl

⑤ C語言實現從FTP下載、上傳文件

FTP 是File Transfer Protocol(文件傳輸協議)的英文簡稱,而中文簡稱為「文傳協議」。
1.C語言可以使用CStdioFile函數打開本地文件。使用類CInternetSession 創建並初始化一個Internet打開FTP伺服器文件。
CStdioFile繼承自CFile,一個CStdioFile 對象代表一個用運行時函數fopen 打開的C 運行時流式文件。
流式文件是被緩沖的,而且可以以文本方式(預設)或二進制方式打開。文本方式提供對硬回車—換行符對的特殊處理。當你將一個換行符(0x0A)寫入一個文本方式的CStdioFile 對象時,位元組對(0x0D,0x0A)被發送給該文件。當你讀一個文件時,位元組對(0x0D,0x0A)被翻譯為一個位元組(0x0A)。
CStdioFile 不支持Duplicate,LockRange,和UnlockRange 這幾個CFile 函數。如果在CStdioFile 中調用了這幾個函數,將會出現CNoSupported 異常。
使用類CInternetSession 創建並初始化一個或多個同時的Internet 會話。如果需要,還可描述與代理伺服器的連接。
如果Internet連接必須在應用過程中保持著,可創建一個類CWinApp的CInternetSession成員。一旦已建立起Internet 會話,就可調用OpenURL。CInternetSession會通過調用全局函數AfxParseURL來為分析映射URL。無論協議類型如何,CInternetSession 解釋URL並管理它。它可處理由URL資源「file://」標志的本地文件的請求。如果傳給它的名字是本地文件,OpenURL 將返回一個指向CStdioFile對象的指針。
如果使用OpenURL在Internet伺服器上打開一個URL,你可從此處讀取信息。如果要執行定位在伺服器上的指定的服務(例如,HTTP,FTP或Gopher)行為,必須與此伺服器建立適當的連接。

⑥ 使用CFtpConnection類,總是有內存泄露,是咋回事

為了與FTPInternet伺服器通訊,必須先創建一個CInternetSession實例,然後創建CFtpConnection對象。創建CFtpConnection對象不採用直接方式,而是調用CInternetSession::GetFtpConnertion來創建並返回一個指向它的指針。CFtpConnection類的成員構造函數CFtpConnection構造一個CFtpConnection對象操作SetCurrentDirectory設置當前FTP目錄GetCurrentDirectory獲取此次連接的當前目錄GetCurrentDirectoryAsURL獲取作為URL的此次連接的當前目錄RemoveDirectory從伺服器移去指定目錄CreateDirectory在伺服器上構造一個目錄Rename將伺服器上的文件改名Remove從伺服器上移去一個文件PutFile將一個文件放到伺服器上GetFile從連接的伺服器上獲取一個文件OpenFile在連接的伺服器上打開一個文件Close關閉與伺服器的連接實例一:上傳文件CStringstrAppName=AfxGetAppName();CInternetSession*pSession=newCInternetSession(strAppName);CFtpConnection*pConn=pSession->GetFtpConnection("10.46.1.232","Anonymous","",21);pConn->SetCurrentDirectory("test");CStringstrLocfile,strRemotefile;strLocfile="C:\\cmd.txt";strRemotefile="cmd.txt";pConn->PutFile(strLocfile,strRemotefile,FTP_TRANSFER_TYPE_ASCII);pConn->Close();return0;實例二:Ftp的打開文件操作函數:OpenFile

⑦ C++目前有哪些封裝了HTTP,FTP等常用的應用

微軟基礎類庫MFC,都封裝了CInternetSession,CHttpConnection,CHttpFile,基本能滿足要求了,用的時候寫好異常處理就行了

⑧ 我用CFtpConnection類的成員函數在ftp伺服器上創建一個文件夾,可怎麼把文件上傳到這個創建的文件夾呢

和本地文件讀寫類似的

先以讀方式打開本地文件,再以寫方式打開FTP遠程文件,然後讀取本地文件至遠程文件。

關鍵代碼:

bOpen=m_CFile.Open(m_str_LocalFileName,CFile::modeRead);
m_pRemoteFile=m_pConnect->OpenFile(m_str_remoteFileName,GENERIC_WRITE);
while((dwRead=m_CFile.Read(pBuf,m_FileLenStep))>0)
{
m_pRemoteFile->Write(pBuf,dwRead);

m_CurUploadSize+=dwRead;
}

⑨ 關於c語言ftp項目運行問題

你這個是C++,不是C,看錯誤提示應該是缺少鏈接庫(lib文件)

⑩ 怎麼把CFTP關了

1、打開控制面板,點擊啟動或關閉windows功能

熱點內容
android百度地圖氣泡 發布:2025-07-21 16:09:41 瀏覽:223
pythonhadoop 發布:2025-07-21 16:09:37 瀏覽:889
演算法抗干擾 發布:2025-07-21 16:07:37 瀏覽:341
愛奇藝緩存廣告 發布:2025-07-21 15:56:49 瀏覽:550
vb操作access資料庫 發布:2025-07-21 15:39:24 瀏覽:246
python建立列表 發布:2025-07-21 15:39:23 瀏覽:359
文件上傳命名 發布:2025-07-21 15:23:29 瀏覽:455
il反編譯器 發布:2025-07-21 15:04:16 瀏覽:105
資料庫的歸檔日誌 發布:2025-07-21 14:58:42 瀏覽:599
網路參數設置的伺服器地址 發布:2025-07-21 14:47:03 瀏覽:868