當前位置:首頁 » 文件傳輸 » FTP查找目錄的函數
擴展閱讀
webinf下怎麼引入js 2023-08-31 21:54:13
堡壘機怎麼打開web 2023-08-31 21:54:11

FTP查找目錄的函數

發布時間: 2022-09-05 04:38:21

1. c# 如何遍歷ftp文件夾下的文件

ftp文件是一樣的
只不過路徑的格式不一樣而已

這個文件太長了 給我信箱給你發過去吧
using System;
using System.Net;
using System.IO;
using System.Text;
using System.Net.Sockets;

namespace zhangyuk.net.csdn.blog.ftpclient
{
/// <summary>
/// FTP Client
/// </summary>
public class FTPClient
{
#region 構造函數
/// <summary>
/// 預設構造函數
/// </summary>
public FTPClient()
{
strRemoteHost = " ";
strRemotePath = " ";
strRemoteUser = " ";
strRemotePass = " ";
strRemotePort = 21;
bConnected = false;
}

/// <summary>
/// 構造函數
/// </summary>
/// <param name= "remoteHost "> </param>
/// <param name= "remotePath "> </param>
/// <param name= "remoteUser "> </param>
/// <param name= "remotePass "> </param>
/// <param name= "remotePort "> </param>
public FTPClient( string remoteHost, string remotePath, string remoteUser, string remotePass, int remotePort )
{
strRemoteHost = remoteHost;
strRemotePath = remotePath;
strRemoteUser = remoteUser;
strRemotePass = remotePass;
strRemotePort = remotePort;
Connect();
}
#endregion

#region 登陸
/// <summary>
/// FTP伺服器IP地址
/// </summary>
private string strRemoteHost;
public string RemoteHost
{
get
{
return strRemoteHost;
}
set
{
strRemoteHost = value;
}
}
/// <summary>
/// FTP伺服器埠
/// </summary>
private int strRemotePort;
public int RemotePort
{
get
{
return strRemotePort;
}
set
{
strRemotePort = value;
}
}
/// <summary>
/// 當前伺服器目錄
/// </summary>
private string strRemotePath;
public string RemotePath
{
get
{
return strRemotePath;
}
set
{
strRemotePath = value;
}
}
/// <summary>
/// 登錄用戶賬號
/// </summary>
private string strRemoteUser;
public string RemoteUser
{
set
{
strRemoteUser = value;
}
}
/// <summary>
/// 用戶登錄密碼
/// </summary>
private string strRemotePass;
public string RemotePass
{
set
{
strRemotePass = value;
}
}

/// <summary>
/// 是否登錄
/// </summary>
private Boolean bConnected;
public bool Connected
{
get
{
return bConnected;
}
}
#endregion

2. php 使用 FTP 相關函數

汗了,「編譯」那是給PHP源代碼用的。那是在linux或unix等操作系統上用的。windows下一般都是編譯過的。FTP函數默認支持!
怎麼加?寫程序啊。
不會PHP的話就別想了。DW只是個編輯器而已,不能替代你寫程序的。

3. VBA中如何用FtpFindFirstFile查看FTP上文件是否存在

建議你先使用SetFTPDirectory指定目錄,然後再使用FtpFindFirstFile函數,這時sFile應該就是"0000.xls"。
你可以參考一下cFTP類中的GetFTPDirectoryContent方法的代碼。
還沒有安裝FTP伺服器,還不能幫你寫出完整的代碼,你自己先試試,不好意思。

4. AU3有什麼FTP函數能遍歷上傳一個文件夾下的文件

試編寫代碼如下: <?php$dir="D:/WWW/ftp"; //指定的路徑$sitepath = '中國//localhost/ftp/';//遍歷文件夾下所有文件if (false != ($handle = opendir ( $dir ))) { echo "$dir 目錄下的文件列表:
"; $i = 0; while (false !== ($file = readdir($handle))) { if ($file != "." && $file != ".." && !is_dir($dir.'/'.$file)) { echo ''.$file. '
'; } } //關閉句柄 closedir($handle);}?> 代碼中需要提示的是: 如果是運行於互聯中國上,需要考慮文件的訪問安全性。 運行截圖

5. 1、什麼是FTPFTP的工作模式是什麼什麼是匿名FTP

[編輯本段]文件傳輸協議
FTP(File Transfer Protocol),是文件傳輸協議的簡稱。用於Internet上的控制文件的雙向傳輸。同時,它也是一個應用程序(Application)。用戶可以通過它把自己的PC機與世界各地所有運行FTP協議的伺服器相連,訪問伺服器上的大量程序和信息。
FTP(File Transfer Protocol)
[編輯本段]FTP的作用
正如其名所示:FTP的主要作用,就是讓用戶連接上一個遠程計算機(這些計算機上運行著FTP伺服器程序)察看遠程計算機有哪些文件,然後把文件從遠程計算機上拷到本地計算機,或把本地計算機的文件送到遠程計算機去。
[編輯本段]FTP工作原理
拿下傳文件為例,當你啟動FTP從遠程計算機拷貝文件時,你事實上啟動了兩個程序:一個本地機上的FTP客戶程序:它向FTP伺服器提出拷貝文件的請求。另一個是啟動在遠程計算機的上的FTP伺服器程序,它響應你的請求把你指定的文件傳送到你的計算機中。FTP採用「客戶機/伺服器」方式,用戶端要在自己的本地計算機上安裝FTP客戶程序。FTP客戶程序有字元界面和圖形界面兩種。字元界面的FTP的命令復雜、繁多。圖形界面的FTP客戶程序,操作上要簡潔方便的多。
簡單地說,支持FTP協議的伺服器就是FTP伺服器,下面介紹一下什麼是FTP協議。(文件傳輸協議)
一般來說,用戶聯網的首要目的就是實現信息共享,文件傳輸是信息共享非常重要的一個內容之一。Internet上早期實現傳輸文件,並不是一件容易的事,我們知道 Internet是一個非常復雜的計算機環境,有PC,有工作站,有MAC,有大型機,據統計連接在Internet上的計算機已有上千萬台,而這些計算機可能運行不同的操作系統,有運行Unix的伺服器,也有運行Dos、Windows的PC機和運行MacOS的蘋果機等等,而各種操作系統之間的文件交流問題,需要建立一個統一的文件傳輸協議,這就是所謂的FTP。基於不同的操作系統有不同的FTP應用程序,而所有這些應用程序都遵守同一種協議,這樣用戶就可以把自己的文件傳送給別人,或者從其它的用戶環境中獲得文件。
與大多數Internet服務一樣,FTP也是一個客戶機/伺服器系統。用戶通過一個支持FTP協議的客戶機程序,連接到在遠程主機上的FTP伺服器程序。用戶通過客戶機程序向伺服器程序發出命令,伺服器程序執行用戶所發出的命令,並將執行的結果返回到客戶機。比如說,用戶發出一條命令,要求伺服器向用戶傳送某一個文件的一份拷貝,伺服器會響應這條命令,將指定文件送至用戶的機器上。客戶機程序代表用戶接收到這個文件,將其存放在用戶目錄中。
在FTP的使用當中,用戶經常遇到兩個概念:"下載"(Download)和"上載"(Upload)。"下載"文件就是從遠程主機拷貝文件至自己的計算機上;"上載"文件就是將文件從自己的計算機中拷貝至遠程主機上。用Internet語言來說,用戶可通過客戶機程序向(從)遠程主機上載(下載)文件。
使用FTP時必須首先登錄,在遠程主機上獲得相應的許可權以後,方可上載或下載文件。也就是說,要想同哪一台計算機傳送文件,就必須具有哪一台計算機的適當授權。換言之,除非有用戶ID和口令,否則便無法傳送文件。這種情況違背了Internet的開放性,Internet上的FTP主機何止千萬,不可能要求每個用戶在每一台主機上都擁有帳號。匿名FTP就是為解決這個問題而產生的。
匿名FTP是這樣一種機制,用戶可通過它連接到遠程主機上,並從其下載文件,而無需成為其注冊用戶。系統管理員建立了一個特殊的用戶ID,名為anonymous, Internet上的任何人在任何地方都可使用該用戶ID。
通過FTP程序連接匿名FTP主機的方式同連接普通FTP主機的方式差不多,只是在要求提供用戶標識ID時必須輸入anonymous,該用戶ID的口令可以是任意的字元串。習慣上,用自己的E-mail地址作為口令,使系統維護程序能夠記錄下來誰在存取這些文件。
值得注意的是,匿名FTP不適用於所有Internet主機,它只適用於那些提供了這項服務的主機。
當遠程主機提供匿名FTP服務時,會指定某些目錄向公眾開放,允許匿名存取。系統中的其餘目錄則處於隱匿狀態。作為一種安全措施,大多數匿名FTP主機都允許用戶從其下載文件,而不允許用戶向其上載文件,也就是說,用戶可將匿名FTP主機上的所有文件全部拷貝到自己的機器上,但不能將自己機器上的任何一個文件拷貝至匿名FTP主機上。即使有些匿名FTP主機確實允許用戶上載文件,用戶也只能將文件上載至某一指定上載目錄中。隨後,系統管理員會去檢查這些文件,他會將這些文件移至另一個公共下載目錄中,供其他用戶下載,利用這種方式,遠程主機的用戶得到了保護,避免了有人上載有問題的文件,如帶病毒的文件。
作為一個Internet用戶,可通過FTP在任何兩台Internet主機之間拷貝文件。但是,實際上大多數人只有一個Internet帳戶,FTP主要用於下載公共文件,例如共享軟體、各公司技術支持文件等。 Internet上有成千上萬台匿名FTP主機,這些主機上存放著數不清的文件,供用戶免費拷貝。實際上,幾乎所有類型的信息,所有類型的計算機程序都可以在Internet上找到。這是Internet吸引我們的重要原因之一。
匿名FTP使用戶有機會存取到世界上最大的信息庫,這個信息庫是日積月累起來的,並且還在不斷增長,永不關閉,涉及到幾乎所有主題。而且,這一切是免費的。
匿名FTP是Internet網上發布軟體的常用方法。Internet之所以能延續到今天,是因為人們使用通過標准協議提供標准服務的程序。像這樣的程序,有許多就是通過匿名FTP發布的,任何人都可以存取它們。
Internet中的有數目巨大的匿名FTP主機以及更多的文件,那麼到底怎樣才能知道某一特定文件位於哪個匿名FTP主機上的那個目錄中呢?這正是Archie伺服器所要完成的工作。Archie將自動在FTP主機中進行搜索,構造一個包含全部文件目錄信息的資料庫,使你可以直接找到所需文件的位置信息。
[編輯本段]通過ftp傳輸文件的一般步驟
需要進行遠程文件傳輸的計算機必須安裝和運行ftp客戶程序。在windows操作系統的安裝過程中,通常都安裝了tcp/ip協議軟體,其中就包含了ftp客戶程序。但是該程序是字元界面而不是圖形界面,這就必須以命令提示符的方式進行操作,很不方便。
啟動ftp客戶程序工作的另一途徑是使用ie瀏覽器,用戶只需要在ie地址欄中輸入如下格式的url地址:ftp://[用戶名:口令@]ftp伺服器域名[:埠號]
(在CMD命令行下也可以用上述方法連接,通過put命令和get命令達到上傳和下載的目的,通過ls命令列出目錄,除了上述方法外還可以在cmd下輸入ftp回車,然後輸入open IP來建立一個連接,此方法還適用於linux下連接ftp伺服器)
通過ie瀏覽器啟動ftp的方法盡管可以使用,但是速度較慢,還會將密碼暴露在ie瀏覽器中而不安全。因此一般都安裝並運行專門的ftp客戶程序。
1.在本地電腦上登陸到國際互聯網.
2.搜索有文件共享主機或者個人電腦(一般有專門的FTP伺服器網站上公布的,上面有進入該主機或個人電腦的名稱,口令和路徑).
3.當與遠程主機或者對方的個人電腦建立連接後,用對方提供的用戶名和口令登陸到該主機或對方的個人電腦.
4.在遠程主機或對方的個人電腦登陸成功後,就可以上傳你想跟別人分享的東東或者下載別人授權共享的東東(這里的東東是指能放到電腦里去又能在顯示屏上看到的東東).
5.完成工作後關閉FTP下載軟體,切斷連接.
為了實現文件傳輸,用戶還要運行專門的文件傳輸程序,比如網際快車就有這方面的功能,其它還有很多專門的FTP傳輸軟體,FlashFxp為其中的傑出軟體。有興趣的網友可以試試其他的軟體,如LeapFTP總歸各有各的特色.
FTP協議
TCP/IP協議中,FTP標准命令TCP埠號為21,Port方式數據埠為20。FTP協議的任務是從一台計算機將文件傳送到另一台計算機,它與這兩台計算機所處的位置、聯接的方式、甚至是是否使用相同的操作系統無關。假設兩台計算機通過ftp協議對話,並且能訪問Internet, 你可以用ftp命令來傳輸文件。每種操作系統使用上有某一些細微差別,但是每種協議基本的命令結構是相同的。
FTP的傳輸有兩種方式:ASCII傳輸模式和二進制數據傳輸模式。
1.ASCII傳輸方式:假定用戶正在拷貝的文件包含的簡單ASCII碼文本,如果在遠程機器上運行的不是UNIX,當文件傳輸時ftp通常會自動地調整文件的內容以便於把文件解釋成另外那台計算機存儲文本文件的格式。
但是常常有這樣的情況,用戶正在傳輸的文件包含的不是文本文件,它們可能是程序,資料庫,字處理文件或者壓縮文件(盡管字處理文件包含的大部分是文本,其中也包含有指示頁尺寸,字型檔等信息的非列印字元)。在拷貝任何非文本文件之前,用binary 命令告訴ftp逐字拷貝,不要對這些文件進行處理,這也是下面要講的二進制傳輸。
2.二進制傳輸模式:在二進制傳輸中,保存文件的位序,以便原始和拷貝的是逐位一一對應的。即使目的地機器上包含位序列的文件是沒意義的。例如,macintosh以二進制方式傳送可執行文件到Windows系統,在對方系統上,此文件不能執行。
如果你在ASCII方式下傳輸二進制文件,即使不需要也仍會轉譯。這會使傳輸稍微變慢 ,也會損壞數據,使文件變得不能用。(在大多數計算機上,ASCII方式一般假設每一字元的第一有效位無意義,因為ASCII字元組合不使用它。如果你傳輸二進制文件,所有的位都是重要的。)如果你知道這兩台機器是同樣的,則二進制方式對文本文件和數據文件都是有效的。
5. FTP的工作方式
FTP支持兩種模式,一種方式叫做Standard (也就是 PORT方式,主動方式),一種是 Passive (也就是PASV,被動方式)。 Standard模式 FTP的客戶端發送 PORT 命令到FTP伺服器。Passive模式FTP的客戶端發送 PASV命令到 FTP Server。
下面介紹一個這兩種方式的工作原理:
Port模式FTP 客戶端首先和FTP伺服器的TCP 21埠建立連接,通過這個通道發送命令,客戶端需要接收數據的時候在這個通道上發送PORT命令。 PORT命令包含了客戶端用什麼埠接收數據。在傳送數據的時候,伺服器端通過自己的TCP 20埠連接至客戶端的指定埠發送數據。 FTP server必須和客戶端建立一個新的連接用來傳送數據。
Passive模式在建立控制通道的時候和Standard模式類似,但建立連接後發送的不是Port命令,而是Pasv命令。FTP伺服器收到Pasv命令後,隨機打開一個高端埠(埠號大於1024)並且通知客戶端在這個埠上傳送數據的請求,客戶端連接FTP伺服器此埠,然後FTP伺服器將通過這個埠進行數據的傳送,這個時候FTP server不再需要建立一個新的和客戶端之間的連接。
很多防火牆在設置的時候都是不允許接受外部發起的連接的,所以許多位於防火牆後或內網的FTP伺服器不支持PASV模式,因為客戶端無法穿過防火牆打開FTP伺服器的高端埠;而許多內網的客戶端不能用PORT模式登陸FTP伺服器,因為從伺服器的TCP 20無法和內部網路的客戶端建立一個新的連接,造成無法工作。
FTP軟體可以更好的幫助你管理FTP目錄 提供更系統的工具
FTP工具推薦使用 cuteftp
http://www.onlinedown.net/soft/3065.htm
[編輯本段]主動和被動模式
FTP有兩種使用模式:主動和被動。主動模式要求客戶端和伺服器端同時打開並且監聽一個埠以建立連接。在這種情況下,客戶端由於安裝了防火牆會產生一些問題。所以,創立了被動模式。被動模式只要求伺服器端產生一個監聽相應埠的進程,這樣就可以繞過客戶端安裝了防火牆的問題。
一個主動模式的FTP連接建立要遵循以下步驟:
客戶端打開一個隨機的埠(埠號大於1024,在這里,我們稱它為x),同時一個FTP進程連接至伺服器的21號命令埠。此時,源埠為隨機埠x,在客戶端,遠程埠為21,在伺服器。
客戶端開始監聽埠(x+1),同時向伺服器發送一個埠命令(通過伺服器的21號命令埠),此命令告訴伺服器客戶端正在監聽的埠號並且已准備好從此埠接收數據。這個埠就是我們所知的數據埠。
伺服器打開20號源埠並且建立和客戶端數據埠的連接。此時,源埠為20,遠程數據埠為(x+1)。
客戶端通過本地的數據埠建立一個和伺服器20號埠的連接,然後向伺服器發送一個應答,告訴伺服器它已經建立好了一個連接。
[編輯本段]FTP和網頁瀏覽器
大多數最新的網頁瀏覽器和文件管理器都能和FTP伺服器建立連接。這使得在FTP上通過一個介面就可以操控遠程文件,如同操控本地文件一樣。這個功能通過給定一個FTP的URL實現,形如ftp://<伺服器地址>(例如,ftp://ftp.gimp.org )。是否提供密碼是可選擇的,如果有密碼,則形如:@ftp://<login>:<password>@<ftpserveraddress>。大部分網頁瀏覽器要求使用被動FTP模式,然而並不是所有的FTP伺服器都支持被動模式。[1][2]
[編輯本段]ftp 命令
1、FTP伺服器的登陸
匿名用戶:FTP 口令:FTP
用戶 :ANONYMOUS 口令:任何電子郵件
2、顯示文件信息:DIR/IS
3、下載文件:GET 文件名 (下載到當前目錄)
4、上傳文件:PUT 文件名
5、多文件下載:MGET
6、多文件上傳:MPUT
7、退出:BYE
8、幫助:HELP
[編輯本段]用途
在本地主機和遠程主機之間傳送文件。
[編輯本段]語法
ftp [ -d] [ -g ] [ -i ] [ -n ] [ -v] [ -f ] [ -k realm] [-q[-C]][ HostName [ Port ] ]
[編輯本段]描述
ftp 命令使用「文件傳送協議」 (FTP) 在本地和遠程主機或遠程主機之間傳送文件。
FTP 協議允許在使用不同文件系統的主機之間進行數據傳送。盡管協議在傳送數據中提供了很高的靈活度,它仍然不會嘗試保留特定於某個文件系統的文件屬性(如文件保護模式或修改時間)。而且,FTP 協議為文件系統的整體結構做了少許假設,且不提供或不允許諸如循環地復制子目錄這樣的函數。
請注意:如果您正在系統之間傳送文件,且需要保存文件屬性或遞歸地復制子目錄,請使用 rcp 命令。
[編輯本段]發布子命令
您可以在 ftp> 提示符中輸入子命令,執行類似這樣的任務:列出遠程目錄、更改當前的本地和遠程目錄、在單一請求中傳送多個文件、創建和除去目錄,以及轉義到本地 shell 執行 shell 命令。請參考子命令章節取得每個子命令的描述信息。
如果您執行 ftp 命令而不為遠程主機指定 HostName 參數,ftp 命令會立即顯示 ftp> 提示符,等待 ftp 子命令。要連接遠程主機,請執行 open 子命令。 當 ftp 命令連接到遠程主機時,ftp 命令在再次顯示提示符 ftp> 之前會提示輸入登錄名和密碼。如果遠程主機中未定義登錄名的密碼,ftp 命令將不成功。
ftp 命令解釋器(處理在 ftp> 提示符處輸入的全部子命令),會提供大多數文件傳送程序沒有的性能,如:
* 對 ftp 子命令處理文件名參數
* 將一組子命令集中成一個單一的子命令宏
* 從 $HOME/.netrc 文件中裝入宏
這些性能會幫助您簡化重復的任務,並允許您在 unattended 方式使用 ftp 命令。
命令解釋器將按照下列規則處理文件名參數:
* 如果為此參數指定了 -(連字元),則標准輸入 (stdin) 將用於讀取操作,而標准輸出用於寫入操作。
* 如果未應用前面的檢查,且文件名擴展已啟用(請參考 -g 標志或 glob 子命令),則解釋器將根據 C shell 的規則擴展文件名。啟用了文件名匹配替換以及在期待單一文件名的子命令中使用了模式匹配字元時,結果可能與期待的不一樣。
例如,append 和 put 子命令將拓展文件名,然後僅使用所生成第一個文件名。其它 ftp 子命令,如 cd、delete, get、mkdir、rename 和 rmdir 不會執行文件名拓展,並從字面上接受模式匹配字元。
* 對於 get、put、mget 和 mput 子命令,解釋器有能力在不同的本地和遠程文件名語法樣式之間進行翻譯和映射(請參考 case、ntrans 和 nmap 子命令),並且在本地文件名不是唯一的情況下有修改它的能力(請參考 runique 子命令)。另外,如果遠程文件名不是唯一的,則 ftp 命令可將指令發送到遠程 ftpd 伺服器,以修改遠程的文件名(請參考 sunique 子命令)。
* 使用雙引號 (" ") 指定包含空字元的參數。
請注意:ftp 命令解釋器不支持管道。也無需支持所有多位元組字元文件名。
要在互動地運行的時候結束 ftp 會話,請使用 quit 或 bye 子命令或 ftp> 提示符處的End of File (Ctrl-D) 按鍵順序。要在文件傳送未完成之前結束它,請按中斷按鍵順序。其預設「中斷鍵」序列是 Ctrl-C。stty 指令能用於重新定義該鍵系列。
ftp 命令在正常情況下會立即暫停正在發送(從本地主機到遠端主機)的傳輸。ftp 命令通過將 FTP ABOR 指令發送到遠程 FTP 伺服器,來暫停正在接收的傳輸(從遠程主機到本地主機),並廢棄所有傳入的文件傳送包(直到遠程伺服器停止發送它們為止)。如果遠程伺服器不支持 ABOR 指令,在遠程伺服器未發送所有請求的文件之前,ftp 命令不會顯示 ftp> 提示符。另外,如果遠程伺服器執行未期望的操作時,可能需要結束本地 ftp 進程。
安全性和自動登錄
如果「標準的」是當前認證方法:
ftp 命令也會通過將密碼發送到遠程主機來處理安全性,並許可自動登錄、文件傳送和注銷操作。
如果您執行 ftp 命令並指定遠程主機的主機名 (HostName), ftp 命令會嘗試建立一個對於指定主機的連接。如果 ftp 命令連接成功,ftp 命令會在當前目錄或主目錄中搜索本地的 $HOME/.netrc 文件。如果文件存在,ftp 命令會在文件中搜索啟動登錄過程的入口,在命令宏定義中搜索遠程主機。如果 $HOME/.netrc 文件或自動登錄項不存在,或是系統已使用 securetcpip 命令保護起來, ftp 命令會提示用戶輸入用戶名和密碼。不論命令行中是否指定 HostName 參數,該指令都會顯示此提示。
請注意: 排隊系統不支持多位元組主機名。
如果 ftp 命令找到指定主機的$HOME/.netrc 自動登錄項, ftp 會試圖使用該登錄項中的信息登錄遠程主機。ftp 命令也會載入任何在登錄項中定義的命令宏。在某些情況(例如,所需的密碼在自動登錄項中沒有列出來),ftp 命令會在顯示 ftp> 提示符之前提示輸入密碼。
一旦 ftp 命令完成自動登錄,如果宏是在自動登錄項中定義的,ftp 命令就會執行init 宏。如果init 宏不存在或未包含 quit 或 bye 子命令,ftp 命令將顯示 ftp> 提示符並等待子命令。
請注意: 在提示符或在 $HOME/.netrc 文件中指定的遠程主機名必須存在,並擁有在遠程主機中定義的密碼。否則,ftp 指令無效。
如果 Kerberos 5 是當前的認證方法:
ftp 命令會按在 IETF 草稿文擋 "draft-ietf-cat-ftpsec-09.txt" 定義的那樣將此拓展用於 ftp 規范。FTP 安全性擴展將使用「 InPattern 參數。除 $(美元符號)和 \$ (反斜杠,美元符號)以外,InPattern 參數中的所有字元,都是按字面意義處理的,並用作 InPattern 變數之間的定界符。例如,如果 InPattern 參數是 $1.$2 且遠程文件名是 mydata.dat,則 $1 的值是 mydata,$2 的值是 dat。
此 OutPattern 參數確定結果文件名。從 $1 到 $9 的變數將被它們從 InPattern 參數獲得的值替換,而變數 $0 將由原文件名替換。另外,如果 Sequence1 不為空,序列 [Sequence1,Sequence2] 將由 Sequence1 替換;否則它將由 Sequence2 的值替換。例如,子命令:
nmap $1.$2.$3 [$1,$2].[$2,file]
會從 myfile.data 或 myfile.data.old 中產生 myfile.data,從 myfile 中產生 myfile.file,從 .myfile中產生myfile.myfile。請使用 \ (反斜杠) 符號防止 OutPattern參數中 $(美元符號)、[(左括弧)、](右括弧)和 ,(逗號)的特殊意義。
non-print form non-print 子命令的同義詞。
ntrans ] 打開或關閉文件名字元翻譯機制。如果未指定任何參數,字元翻譯將關閉。如果參數已指定,在沒有指定目標文件名的時候,將為 mget 和 mput 子命令以及 get 和 put 子命令翻譯源文件名中的字元。
此子命令在本地和遠程主機使用不同的文件名約定和慣例時很有用。字元翻譯遵從 InCharacters 和 OutCharacters 參數設置的模式。匹配InCharacters 參數中字元的源文件名中的字元將由 OutCharacters 參數中對應的字元替換。
如果 InCharacters 參數指定的字元串比 OutCharacters 參數指定的字元串長,而且其在 OutCharacters 參數中無對應的字元,則 InCharacters 參數中的字元將被刪除。
open HostName [Port] 在由 HostName 參數所指定主機中建立對 FTP 伺服器的連接。如果可選的埠號已指定ftp 命令將嘗試連接該埠中的伺服器。如果已設置自動登錄功能(即,該 -n 標志沒有在命令行中指定), 則 ftp 命令就會試圖讓用戶登錄到 遠程 FTP 伺服器的全部響應。另外, ftp 會在傳輸完成後顯示所有文件傳送的統計信息。

6. Ftpcommand函數怎麼使用

(一)目的
使用windows提供的wininet api進行簡單的網路http/ftp文件下載和察看(按文本文件顯示)。

(二)准備工作
1 建立vc6的console application,選擇支持mfc。
2 加入頭文件wininet.h
3 加入 #pragma comment(lib, "Wininet.lib")

(三)源代碼
主程序接受用戶輸入的url地址(必須是完整的url,如ftp://, http://),當用戶鍵入quit時退出。
int _tmain(int argc, TCHAR* argv[], TCHAR* envp[])
{
int nRetCode = 0;
char url[1000];//存放URL地址

//用戶鍵入quit時退出
while(cin >> url && strcmp(url, "quit") != 0)
{
try
{
cout << "目標URL:" << url << endl;
Download(url);
}
catch (char* e)//顯示出錯信息
{
cout << e << endl << endl;
}
}

return nRetCode;
}

<Work Function> - 調用windows wininet api進行ftp/http文件的下載。下載的文件將默認為acsii文本文件進行顯示。
void Download(char url[])
{
char buffer[100000];//下載文件的緩沖區
DWORD bytes_read;//下載的位元組數

//打開一個internet連接
HINTERNET internet=InternetOpen("HTTP Downloader", INTERNET_OPEN_TYPE_PRECONFIG,
NULL, NULL, NULL);

if(!internet)
throw "InternetOpen error!";

//打開一個http url地址
HINTERNET file_handle=InternetOpenUrl(internet, url, NULL, 0,
INTERNET_FLAG_RELOAD, 0);

if(!file_handle)
throw "InternetOpenUrl error! - Maybe you should add http:// or Ftp://";

//從url地址中讀取文件內容到緩沖區buffer
BOOL b = InternetReadFile(file_handle, buffer, 100000, &bytes_read);
if(!b)
throw "InternetReadFile error!";

buffer[bytes_read] = 0;

cout << buffer << endl << endl;

//關閉連接
InternetCloseHandle(internet);
}

(四)說明
本文給出了windows環境下下載網路文件的簡易方法。在此基礎上,可以對文件進行更為復雜的操作,例如用於信息檢索和其它網頁處理方面。

7. 誰用過wininet寫ftp客戶端,關於FtpGetCurrentDirectory這個函數

連接InternetOpen初始化WinINet,返回建立Internet連接,打開FTP、Gopher或者HTTP會話。返回關閉Internet連接目錄操作FtpCreateDirectory在FTP伺服器上建立目錄,需要InternetConnect返回的會話句柄FtpRemoveDirectory在FTP伺服器上刪除目錄,需要InternetConnect返回的會話句柄FtpGetCurrentDirectory獲取當前在FTP伺服器上的工作目錄,需要InternetConnect返回的會話句柄FtpSetCurrentDirectory設置在FTP伺服器上的工作目錄,需要InternetConnect返回的會話句柄文件操作FtpFindFirstFile在FTP伺服器上查找符合條件的文件或目錄,需要InternetConnect返回的會話句柄InternetFindNextFile在FTP伺服器上繼續查找下一個符合條件的文件或目錄,需要FtpFindFirstFile返回的會話句柄FtpPutFile上傳一個文件到FTP伺服器上,需要InternetConnect返回的會話句柄FtpGetFile從FTP伺服器上下載一個文件,需要InternetConnect返回的會話句柄FtpDeleteFile在FTP伺服器上刪除一個文件,需要InternetConnect返回的會話句柄FtpRenameFile在FTP伺服器上更改一個文件的名字,需要InternetConnect返回的會話句柄FtpOpenFile在FTP伺服器上打開一個文件,需要InternetConnect返回的會話句柄InternetReadFile直接在FTP伺服器上讀取文件,需要FtpOpenFile返回的會話句柄InternetWriteFile直接在FTP伺服器上寫入文件,需要FtpOpenFile返回的會話句柄

8. php ftp_get函數存放路徑問題

看下php手冊 ftp_get中的第二,第三個參數的位置,你寫反過來了

第二個參數是的你的本地路徑,第三個參數是書遠程路徑。

9. 請問在vbs中如何定義ftp的api

在VBS中調用WINDOWS的FTP函數較困難,除非你能將API函數封裝成ACTIVEX DLL.下面是網上找到的函數:
***********************************************
FTP 函 數 描 述

InternetOpen 初始化 Win32 internet

InternetConnect 打開一個FTP, HTTP, or Gopher 應用會話

FtpCreateDirectory 在伺服器上建立一個新的目錄

FtpRemoveDirectory 刪除伺服器上的一個目錄

FtpSetCurrentDirectory 設置伺服器上當前的工作目錄

FtpGetCurrentDirectory 返回伺服器當前的工作目錄

FtpOpenFile 打開伺服器上的一個文件進行讀寫

FtpGetFile 接收指定的文件並且在本地建立它

FtpPutFile 發送指定文件到伺服器

FtpDeleteFile 刪除伺服器上一個指定的文件

FtpCommand 發送命令到伺服器

FtpFindFirstFile 返迴文件信息。放在 WIN32_FIND_DATA 結構中

InternetFindNextFile 調用 FtpFindFirstFile()後在目錄中連續查找

FtpRenameFile 修改伺服器上指定的文件的名字

主要是顯示遠端目錄列表,上傳、下載文件,

'########################################################################

'## ##

'## FTPAPI聲明 ##

'## ##

'########################################################################

Public Const ERROR_NO_MORE_FILES = 18

Public Const ERROR_INTERNET_EXTENDED_ERROR = 12003

Public Const FTP_TRANSFER_TYPE_BINARY = &H2

Public Const FTP_TRANSFER_TYPE_ASCII = &H1

Public Const INTERNET_FLAG_PASSIVE = &H8000000

Public Const INTERNET_FLAG_RELOAD = &H80000000

Public Const INTERNET_FLAG_KEEP_CONNECTION = &H400000

Public Const INTERNET_FLAG_MULTIPART = &H200000

Public Const INTERNET_OPEN_TYPE_PRECONFIG = 0

Public Const INTERNET_OPEN_TYPE_DIRECT = 1

Public Const INTERNET_OPEN_TYPE_PROXY = 3

Public Const INTERNET_INVALID_PORT_NUMBER = 0

Public Const INTERNET_SERVICE_FTP = 1

Public Const INTERNET_SERVICE_GOPHER = 2

Public Const INTERNET_SERVICE_HTTP = 3

Public Const MAX_PATH = 260

Public Const NO_ERROR = 0

Public Const FILE_ATTRIBUTE_READONLY = &H1

Public Const FILE_ATTRIBUTE_HIDDEN = &H2

Public Const FILE_ATTRIBUTE_SYSTEM = &H4

Public Const FILE_ATTRIBUTE_DIRECTORY = &H10

Public Const FILE_ATTRIBUTE_ARCHIVE = &H20

Public Const FILE_ATTRIBUTE_NORMAL = &H80

Public Const FILE_ATTRIBUTE_TEMPORARY = &H100

Public Const FILE_ATTRIBUTE_COMPRESSED = &H800

Public Const FILE_ATTRIBUTE_OFFLINE = &H1000

Public Const INTERNET_DEFAULT_FTP_PORT = 21

Public Const INTERNET_DEFAULT_GOPHER_PORT = 70

Public Const INTERNET_DEFAULT_HTTP_PORT = 80

Public Const INTERNET_DEFAULT_HTTPS_PORT = 443

Public Const INTERNET_DEFAULT_SOCKS_PORT = 1080

Public Type FILETIME

dwLowDateTime As Long

dwHighDateTime As Long

End Type

Public Type WIN32_FIND_DATA

dwFileAttributes As Long

ftCreationTime As FILETIME

ftLastAccessTime As FILETIME

ftLastWriteTime As FILETIME

nFileSizeHigh As Long

nFileSizeLow As Long

dwReserved0 As Long

dwReserved1 As Long

cFileName As String * MAX_PATH

cAlternate As String * 14

End Type

'連接FTP伺服器的操作函數

'打開連接internet的會話

Public Declare Function InternetOpen Lib "wininet.dll" Alias "InternetOpenA" _

(ByVal sAgent As String, ByVal lAccessType As Long, ByVal sProxyName As String, _

ByVal sProxyBypass As String, ByVal lFlags As Long) As Long

'sAgent--要調用internet對話的應用程序名

'lAccessType--請求的訪問的類型,包括:

'INTERNET_OPEN_TYPE_PRECONFIG---預配置(預設)

'INTERNET_OPEN_TYPE_DIRECT--直接指向internet

'INTERNET_OPEN_TYPE_PROXY--通過代理伺服器連接

'sProxyName--如果lAccessType被設置為INTERNET_OPEN_TYPE_PROXY,該參數為

'代理伺服器的名字

'sProxyBypass--包含一系列代理伺服器地址的字元串

'lFlags--會話的選項,可包括下列值:

'INTERNET_FLAG_DONT_CACHE--不對數據進行本地緩沖或通過網關伺服器緩沖

'INTERNET_FLAG_ASYNC--當操作完成時,將同INTERNET_STATUS_REQUEST_COMPLETE

'一起進行一個狀態回調

'INTERNET_FLAG_OFFLINE--只通過永久緩沖進行下載操作

'打開一個根據連接類型的Internet連接

Public Declare Function InternetConnect Lib "wininet.dll" Alias "InternetConnectA" _

(ByVal hInternetSession As Long, ByVal sServerName As String, ByVal nServerPort As Integer, _

ByVal sUsername As String, ByVal sPassword As String, ByVal lService As Long, _

ByVal lFlags As Long, ByVal lContext As Long) As Long

'hInternetSession--函數InternetOpen()打開Internet對話返回的值

'sServerName--要連接的伺服器的名稱或IP

'nServerPort--該連接的Internet埠

'sUsername--登錄的用戶帳號

'sPassword--登錄的口令

'lService--要連接的伺服器類型(這里是連接FTP伺服器,連接的類型為常數INTERNET_SERVICE_FTP)

'關閉Internet連接

Public Declare Function InternetCloseHandle Lib "wininet.dll" _

(ByVal hInet As Long) As Integer

'hInet--InternetConnect()函數返回的值

'文件查找操作

'在FTP連接中查找一個文件。在調用此函數後取得第一個文件後,可以接著調用FtpFindNextFile()

'獲得下一個查到的FTP伺服器上的文件。

Public Declare Function FtpFindFirstFile Lib "wininet.dll" Alias "FtpFindFirstFileA" _

(ByVal hFtpSession As Long, ByVal lpszSearchFile As String, _

lpFindFileData As WIN32_FIND_DATA, ByVal dwFlags As Long, ByVal dwContent As Long) As Long

'lpszSearchFile--指向要搜索的文件名。可以通配符*.*的形式。

'lpFindFileData--用於裝載與找到的文件有關的具體信息

'dwFlags--數據傳輸的方式,通常設置為0,(ASCII方式)

'繼續由FtpFindFirstFile()函數發起的文件搜索操作

Public Declare Function InternetFindNextFile Lib "wininet.dll" Alias "InternetFindNextFileA" _

(ByVal hFind As Long, lpvFindData As WIN32_FIND_DATA) As Long

'hFind--FtpFindFirstFile()函數的返回值

'lpvFindData--用於裝載與找到的文件有關的具體信息

'目錄操作

'改變FTP伺服器的當前目錄。

Public Declare Function FtpSetCurrentDirectory Lib "wininet.dll" Alias "FtpSetCurrentDirectoryA" _

(ByVal hFtpSession As Long, ByVal lpszDirectory As String) As Boolean

'lpszDirectory--包含要到達的目錄名。可以是相對的或絕對的路徑。

'在ftp伺服器上創建目錄

Public Declare Function FtpCreateDirectory Lib "wininet.dll" Alias "FtpCreateDirectoryA" _

(ByVal hFtpSession As Long, ByVal lpszDirectory As String) As Boolean

'lpszDirectory--包含要創建目錄的字元串,可以是一個相對路徑或絕對路徑

'取得ftp當前的目錄的名字

Public Declare Function FtpGetCurrentDirectory Lib "wininet.dll" Alias "FtpGetCurrentDirectoryA" _

(ByVal hFtpSession As Long, lpszCurrentDirectory As String, lpdwCurrentDirectory As Long) As Boolean

'lpszCurrentDirectory--存放目錄名字的字元串

'lpdwCurrentDirectory--目錄名字字元串的位元組數

'刪除ftp伺服器的一個目錄

Public Declare Function FtpRemoveDirectory Lib "wininet.dll" Alias "FtpRemoveDirectoryA" _

(ByVal hFtpSession As Long, ByVal lpszDirectory As String) As Boolean

'lpszDirectory--要刪除的目錄名稱,可以是相對路徑或絕對路徑

'文件操作

'從ftp伺服器上取得一個文件並保存在本地機器上,此函數包括了與從一個FTP伺服器中讀取一個文件

'並在本地保存等操作有關的所有功能

Public Declare Function FtpGetFile Lib "wininet.dll" Alias "FtpGetFileA" _

(ByVal hFtpSession As Long, ByVal lpszRemoteFile As String, _

ByVal lpszNewFile As String, ByVal fFailIfExists As Boolean, ByVal dwFlagsAndAttributes As Long, _

ByVal dwFlags As Long, ByVal dwContext As Long) As Boolean

'lpszRemoteFile--包含FTP伺服器中要讀的文件名

'lpszNewFile--在本地機器中要創建的文件名

'fFailIfExists--當為TRUE時,如果文件已經存在,則調用失敗

'dwFlagsAndAttributes--文件的屬性

'dwFlags--文件的傳輸方式可能包括下列值:

'FTP_TRANSFER_TYPE_ASCII--使用可以將控制和格式信息轉換到本地對應文件的ASCII傳輸方式

'FTP_TRANSFER_TYPE_BINARY--使用把文件作為一個連續數據流傳輸的FTP圖象傳輸方式,這種方式

'不區別在文件內部數據結構之間的任何分界(如行結束的回車標記)

'dwContext--要取回的文件的描述表標識符

10. VBA中如何用Dir()函數查看ftp伺服器上的文件是否存在

要用SHELL函數:

shell(dir xxxx)

DOS底下的FTP 你可以查幫助
FTP -? 然後按照你的需要寫命令.

例如:

shell("ftp 12.216.10.10 -s:a.txt")
在a.txt里定義你的所有輸入行:
youruserid
password(或anonymous)
cd .\data\200804\01\
dir *.xls
quit