应该不是这个命令格式的问题,因为txt文件都可以正常下载回来了,我记得ftp有一个命令,应该是binary,可以把传送的数据设为2进制模式,并不是说把命令使用2进制编码后发送。
解决方案 »
- C# lable居中的问题
- 想要分的请进来,简单问题
- 亲手,有关登录验证数据库
- 除使用 timer 外,如何跑起一个system线程?
- 如何做类似QQ那样的文本编辑框
- 为什么我的窗口关了相应的变量却没有清空?
- 为什么我用VS2003新建项目的时候提示“路径未找到”?
- 请教C#打包,在其它电脑上不能使用。
- webbrowser单线程循环打开一组网址很快,多线程时,每个线程打开的都很慢,为啥?
- OFFIE/QQ/WPS/3721这些东西用什么语言写的?JAVA/.NET/VS6 ???
- 请教:部署安装C#Winform应用程序时怎么自动附加数据库?
- C#编写的ppc程序如何制作成通过PC机安装再通过ActiveSync安装到ppc上
>open ***.**.***.**
>USER:****
>PASSED:*******
>binary (设置为2进制模式传输,否则会把<CR>翻译成<CR><LF>)
>get test.rar
其中涉及了压缩算法和解压算法的问题,要先确立个转换的思路哟 ^_^
是不是通信协议不对
所有文本文件下载后的CR都会被增加换行符号变成CR+LF,这就导致文件被追加了内容无法打开
上传会把CR+LF缩写变成CR
所以一定要设置binary二进制传输方式
REM 创建需要的变量,你修改成你自己的就可以了,这样你就不需要修改下面的代码了
set xdir=c:\
set ftpip=10.0.6.24
set user=movie
set pass=movie
set updir=abc
set filname=20070209.wmv
REM 检测服务器是否有生成需要的文件
if not exist %xdir%%filname% goto :EOF
open %ftpip% > tmp.txt
User %user% %pass%>> tmp.txt bin >> tmp.txt
cd %updir% >> tmp.txt
lcd %xdir% >> tmp.txt
put >> tmp.txt
%filnam% >> tmp.txt
%filnam% >> tmp.txt
bye >> tmp.txt
ftp -n -s:tmp.txt
public void setBinaryMode(Boolean mode)
设一下就行了啊.
"TYPE I";//binary类型传输
" TYPE A";//ASCII类型传输
byte[] buffer1 = new byte[FTPConnection.BLOCK_SIZE];
int num2 = 0;
bool flag1 = true;
while (flag1)
{
num2 = stream1.Read(buffer1, 0, buffer1.Length);
pStream.Write(buffer1, 0, num2);
if (num2 == 0)
{
flag1 = false;
}
}
pStream.Close();
stream1.Close();
client1.Close();
{
if (this.verboseDebugging) Debug.WriteLine(command, "FtpClient "); Byte[] cmdBytes = Encoding.Unicode.GetString((command + "\r\n ").ToCharArray());
clientSocket.Send(cmdBytes, cmdBytes.Length, 0);
this.readResponse();
}