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