cftp所有文件-九游会j9娱乐平台
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類編寫向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)dir--顯示指定路徑上所有文件或目錄的信息
它的格式為"dir [盤符:][路徑][文件名] [參數]",比如"dir e:\ff.m3u"。輸入後回車則會顯示出相關信息(如圖1)。另外它還有幾個參數:
/w:寬屏顯示,一排顯示5個文件名,而不會顯示修改時間,文件大小等信息;
/p:分頁顯示,當屏幕無法將信息完成顯示時,可使用其進行分頁顯示;
/a:顯示具有特殊屬性的文件,這里的屬性有"h"隱藏、"r"只讀等,我們可以輸入"dir *.* /ah"來顯示當前目錄下所有具有隱藏屬性的文件;
/s:顯示當前目錄及其子目錄下所有的文件,通過這個參數,我們可以進行某個文件或目錄的查找,比如我們可以在"c:>"後輸入"dir *.dat /s"來查找c盤中所有後綴名為dat的文件。
幾種參數可以同時使用,例如"dir *.com /w /p /s"。
2)md--建立目錄
它的格式為"md [盤符][路徑]",例如"md temp"。
注意:該命令一次只能建立一個目錄。
3)rd--刪除目錄格式為"rd [盤符][路徑]"。
注意:該命令只能刪除空目錄,並且不能刪除當前目錄。
4)cd--進入指定目錄
格式為" cd [路徑]",例如"cd happy"。
注意:只能進入當前盤符中的目錄。其中"cd\"為回到根目錄,"cd.."為回到上一層目錄。
5)copy--拷貝文件
格式為"copy [源目錄或文件] [目的目錄或文件]",比如"copy c:\*.com d:\",我們也可以輸入"copy c:\command.com d:\command.bak"來進行文件拷貝並改名。
注意:使用該命令進行文件拷貝時,目的目錄一定要存在。
6)del--刪除文件
格式為"del [盤符][路徑][文件名] [參數]",比如"del c:\data\*.bak"。它有一個參數:"/p",可以使用戶在刪除多個文件時對每個文件都顯示刪除詢問
7)ren--改名
格式為"ren [原名] [現名]",7.0以後版本的dos都支持對文件名和目錄名的修改,而以前的dos只能修改文件名。
8)type--顯示文本文件
格式為"type [文件名]",能對文本文件進行查看。
9)dis--磁碟復制
[功能] 復制出一個和原來磁碟內容一模一樣的磁碟
[格式] disk 源驅動器名 目的驅動器名
[說明] 它的主要用途就是用來備份。比如我們的電腦在剛買來時,會隨機附帶一些設備驅動程序磁碟,這些驅動程序在以後都有可能用到,為防止這些磁碟的損壞,一定要將它們都備份一套,這時,使用disk命令是比較快捷和方便的。
10) deltree--刪除目錄樹
[格式] [c:][path]deltree [c1:][path1] [[c2:][path2] […]]
[說明] 這個命令將整個指定目錄樹全部消滅,而不管它是否是只讀、隱藏與否。使用應特別小心。它是一個危險命令。
11) mem--查看你的計算機內存有多少,以及內存的使用情況。
[格式] 直接鍵入mem命令
12) chkdsk--檢查你的磁碟的使用情況。
[格式] chkdsk 磁碟名
[說明] 例如要檢查a盤使用情況,就輸入chkdsk a: ,檢查c盤使用情況,就輸入chkdsk c: ,如果直接輸入chkdsk,就檢查當前磁碟的使用情況。
13) sys--傳遞系統文件命令。將dos的兩個隱含的系統io.sys和msdos.sys傳送到目標磁碟的特定位置上,並將command.com文件復制過去。完成後,目標盤成為dos的啟動盤。
[格式] [c:][path]sys [c1:][path] d2:
[說明] 由於這幾個文件需要復制到特定位置上,所以用copy命令完成的復制未必能夠啟動機器。能過sys命令,dos可以將目標盤已佔據特定位置的文件移動,並將系統文件復制到相應位置上。參數c1:path用來指明系統文件所在目錄。如不指明,則預設為當前盤的當前目錄。所以這個命令一般要在源盤的根目錄進行。
14) pass--設定dos尋找.com、.exe、.bat文件的所在目錄
[格式] path=[[drive:]path[;…]]或path
[說明] 只打path沒有參數時,只顯示環境變數內容。有參數時,重新設置path變數。在沒有指定path環境變數時,用戶發出的命令,dos首先判斷其是否為內部命令,再查找當前目錄中是否有主文件名是該命令的可執行文件,如果均不是,則顯示信息「bad command or filename」。如果發出了指定路徑的命令,則在指定徑中依次查找,仍找不到則出現上述提示。
15) cls--清除顯示器屏幕上的內容,使dos提示符到屏幕左上角。
[格式] cls
16) time--顯示和設置dos的系統時間
[格式] time [hh[:mm[:ss[.cc]]]
17) date--顯示和設置dos的系統日期
[格式] date [mm-dd-yy]
18) ver--顯示正在運行的dos系統版本號
[格式] ver
dos的外部命令
dos的外部命令就是一些應用程序,能夠使用戶的操作更加方便和深入。這些外部命令都是以文件的形式存在,windows系統的dos外部命令保存在windwos主目錄下的"command"目錄中。下面就讓我們來看看常用的一些dos外部命令。
1)format(format.com)--格式化命令
眾所周知,新買的磁碟都必須經過格式化後方能使用,format命令可以完成對軟盤和硬碟的格式化操作,格式為"format [盤符] [參數]",例如:"format a: /s"。它有兩個常見的參數:
/q:進行快速格式化;
/s:完成格式化,並將系統引導文件拷貝到該磁碟。
注意:該命令會清除目的磁碟上的所有數據,一定要小心使用
。如果進行了普通的格式化,那磁碟上的數據還有可能恢復,但如果加上了"/q",那要恢復就比蹬天還難了。
2)edit(edit.com)--編輯命令
其實它就是一個文本編輯軟體(如圖3),使用它可以在dos下方便地對文本文件進行編輯,格式為"edit [文件名] [參數]",它的參數不是特別實用,我在此就不多講。
3)sys(sys.com)--系統引導文件傳輸命令
它能夠將io.sys等幾個文件傳輸到目的磁碟,使其可以引導、啟動。格式為"sys [盤符]"
4)attrib(attrib.exe)--文件屬性設置命令
通過該命令,我們可以對文件進行屬性的查看和更改。格式為"attrib [路徑][文件名] [參數]",如果不加參數則為顯示文件屬性。它的參數有" ?"和"-?"兩種,"?"代表屬性代號,這些代號有:"h"隱藏;"s"系統;"r"只讀," "表示賦予,"-"表示去除。
5)xcopy(x.exe)--拷貝命令
該命令在"copy"的基礎上進行了加強,能夠對多個子目錄進行拷貝。它的參數比較多,但是最常用的是"/s",它可以對一個目錄下屬的多個子目錄進行拷貝,另外"/e"可以拷貝空目錄。格式為"xcopy [源路徑][源目錄/文件名] [目的目錄/文件名] [參數]"。
6)scandisk(scandisk.exe)--磁碟掃描程序
這個命令在實際的操作中有很大的用處,它能對磁碟進行掃描並修復,能夠解決大部分的磁碟文件損壞問題。格式為"scandisk [盤符:] [參數]"下面是它的幾個參數:
/fragment 〔驅動器名:\路徑\文件名〕:使用這個參數可以顯示文件是否包含有間斷的塊,我們可以通過運行磁碟整理程序來解決這個問題;
/all:檢查並修復所有的本地驅動器;
/autofix:自動修復錯誤,即在修復時不會出現提示;
/checkonly:僅僅檢查磁碟,並不修復錯誤;
/custom:根據scandisk.ini文件的內容來運行scandisk,scandisk.ini是一個文本文件,它包含了對scandisk程序的設置,其中的〔custom〕塊是在加上"/custom"參數後才執行的,用戶可以根據自己的不同情況來進行不同的設置;
/nosave:在檢查出有丟失簇後直接刪除,並不轉化為文件;
/nosummary:不顯示檢查概要,完成檢查後將直接退出程序;
/surface:在完成初步檢查後進行磁碟表面掃描;
/mono:以單色形式運行scandisk。
我們可以根據不同的情況來加上不同的參數。我們可以執行"scandisk /all /checkonly /nosave /nosummary"來完成對磁碟的檢查並且自動退出,另外還可以編輯scandisk.ini文件中設置,再運行"scandisk /custom"。如果被損壞的文件比較多,我們可以使用"/autofix"來進行自動修復,不然會忙死你的。
7)chkdsk(chkdsk.exe)--磁碟檢查命令
它會檢查磁碟,並會顯示一個磁碟狀態報告。格式為"chkdsk [盤符:] [參數]",最常用的參數是"/f",可以對文件錯誤進行修復。
8)move(move.exe)--文件移動命令
使用它可以對文件進行移動。格式為"move [源文件] [目的路徑]"。同時也可以使用通配符。
9)deltree(deltree.exe)--刪除命令
這可是del命令的超級加強版,它不僅可以刪除文件,並且會將指定目錄和其下的所有文件和子目錄一並刪掉。使用它,我們可以很方便的對目錄進行徹底的刪除。格式"deltree [文件/路徑] [參數]",參數有一個"/y",使用時系統會對每個文件進行詢問,回答"y"後才刪除。
10)fdisk(fdisk.exe)--分區命令
我們可以使用它對硬碟進行分區操作,我在下一部分會進行具體講解。
以上就是常用的一些dos外部命令,使用它們可以使你的操作更方便,同時也是進行系統修復所必不可少的。請大家好好地掌握每一個命令及其用處。
⑷ c# 獲取ftp某個目錄下的所有文件(不要文件夾)
我在之前做過一個ftp的客戶端工具。
drw 文件夾
-rw 文件(有擴展名或無擴展名)
我是根據服務端返回的報文進行分析獲取的列表。
給你一些代碼片段:
///
/// 獲取指定目錄下的文件和文件夾。
///
/// 要獲取的目錄
/// 要發送到ftp伺服器的密令。
///
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;
}
///
/// 獲取指定目錄下的文件和文件夾。
///
/// 要獲取的目錄
///
public string[] getfilelist(string path)//從ftp伺服器上獲得文件列表
{
return getfilelist(ftpvariable.ftpurlhead ftpremotehost "/" path, webrequestmethods.ftp.listdirectory);
}
///
/// 獲取指定目錄下的文件和文件夾。
///
///
public string[] getfilelist()//從ftp伺服器上獲得文件列表
{
return getfilelist(ftpvariable.ftpurlhead ftpremotehost "/", webrequestmethods.ftp.listdirectory);
}
///
/// 獲取目錄和文件名,返回目錄表。
///
/// 要獲取的目錄
///
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;
}
⑸ 如何創建ftp文件夾
在server機器上創建兩個用戶!這些用戶是用來登錄到ftp的!我的電腦右鍵->管理->本地用戶和組->用戶->「右鍵」新建用戶->輸入用戶名和密碼再點創建就行了。
在c盤新建文件夾「c:\ftp上傳」,並在此文件下新建「localuser」文件夾,並在此文件夾下創建「public」(這個是公共文件夾)、「xxx」和「xxx1」文件夾(xxx和xxx1必須與創建的本地用戶相同)。在c盤新建文件夾「c:\ftp下載」!並在每個文件夾里放不同的文件,以便區分。
安裝iis組件!在開始菜單里—>控制面板-〉添加或刪除程序->添加/刪除windows組件->應用程序伺服器->詳細信息->iis-〉詳細信息-〉ftp-〉確定-〉完成!這樣就把ftp安裝在伺服器上了。
配置ftp伺服器,創建上傳和下載服務!創建上傳伺服器:右鍵ftp站點->選擇新建ftp站點->描述可以根據自己的需要填寫->地址一般都是server的地址,埠就用默認的21吧->因為是提供上傳服務的,所以就用隔離用戶啦->它的目錄指向「c:\ftp上傳」->訪問許可權要鉤上「讀取」和「寫入」啦(圖片上錯了的~)->點擊完成就把上傳的服務創建好了!創建下載伺服器:因為21號埠已經被佔用所以我們就用2121埠!不隔離用戶!它的目錄指向「c:\ftp下載」!只有讀取許可權!就簡單的幾步我們就把一個ftp伺服器創建好了
在xp主機上測試已經完成安裝的ftp伺服器!我們在xp主機上輸入ftp伺服器的ip地址ftp://192.168.1.2就能打開上傳的ftp頁面,輸入ftp://192.168.1.2:2121就能打開下載頁面了!我們還可以用之前創建的那兩個用戶去登錄ftp伺服器!因為只有上傳服務提供了用戶文件夾!所以只有登錄到上傳服務時才能打開用戶文件夾!這個文件夾是用專用的,其它用是無法對裡面的文件進行操作的!我們還能成功地在下載伺服器里下載文件到xp主機上了。