cftp判斷文件夾是否存在
需要先判斷該文件是否存在。
VBA是到一個ftp伺服器上打開指定的文件,但是需要先判斷該文件是否存在,在那個cFTP的類中找到一段代碼。
2. 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外部命令,使用它們可以使你的操作更方便,同時也是進行系統修復所必不可少的。請大家好好地掌握每一個命令及其用處。
3. ftp連接不上怎麼解決啊,如下圖
1、首先我們要下載一個FTP。
腳本ftp.sh如下:
#!/bin/bash
#Usage: sh ftp.sh <ip> <user> <pass> <localdir> <file> <remotedir>
#ftp files
echo "
open $1
passive
prompt off
user $2 $3
binary
lcd $4
cd $6
mput $5
close
bye
" |ftp -v -n |tee autoftp.log >/dev/null
SUCC="226 File receive OK."
RESULT=`grep -I "${SUCC}" autoftp.log`
rm -rf autoftp.log
if [ "${RESULT}" = "${SUCC}" ]
then
#echo "succeed"
exit 0
else
exit 1
fi
注釋:首先登陸ftp,並使用binary方式上傳上傳文件;將ftp輸出的信息重定向到 autoftp.log,然後判斷autoftp.log中是否包含上傳成功的信息;
如果成功,腳本返回0,如不成功,返回1;
在C程序中調用的方法:if (system(:sh ftp.sh %s %s %s %s %s %s:) == 0) printf("上傳成功");
5. 如何檢查電腦上使用了FTP的進程
是檢測本地ftp服務開啟沒有嗎?
你可以使用 service vsftpd status 來查看ftp是否開啟。
也可以使用ps -ef | grep ftp 來查看本地是否含有包含ftp的進程開啟。
如果是檢測遠端ftp有沒有開啟的話,基本沒有方法。可以檢測對端ftp埠(21)有沒有開啟,也可以使用ftp命令查看能不能夠連接上去。
6. c# 從ftp下載文件到本地指定位置
using System.Diagnostics;
private void button1_Click(object sender, EventArgs e)
{
string YuMing = textBox1.Text.Trim();//輸入FTP地址用的!
Process.Start("iexplore","ftp://"+YuMing );
}
你不用想的那麼復雜!系統自帶的FTP你為什麼不用呢?這樣還好點!
試試哈!
7. VBA中如何用FtpFindFirstFile查看FTP上文件是否存在
我做過WORD中的VBA,不知道兄弟是要在什麼環境中運行的。
不同環境,有些函數是有區別的
所以建議你先使用SetFTPDirectory指定目錄,然後再使用FtpFindFirstFile函數,這時sFile應該就是"0000.xls"。
你可以參考一下cFTP類中的GetFTPDirectoryContent方法的代碼。
還沒有安裝FTP伺服器,還不能幫你寫出完整的代碼,你自己先試試,不好意思。
8. 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;
}