ftp进程获胜';t关闭(c#)
编辑3: 编辑2:canftp进程获胜';t关闭(c#),c#,process,cmd,ftp,C#,Process,Cmd,Ftp,编辑3: 编辑2:canmyProcess.WaitForInputIdle()帮助? 编辑:我刚刚发现这些文件甚至没有下载。 我只是放弃删除旧的。请帮助:/ 因此,我使用以下代码从ftp服务器下载文件: Process p = new Process(); ProcessStartInfo info = new ProcessStartInfo(); info.WindowStyle = ProcessWindowStyle.Hidden; info.FileName = "ftp.exe";
myProcess.WaitForInputIdle()代码>帮助?
编辑:我刚刚发现这些文件甚至没有下载。
我只是放弃删除旧的。请帮助:/
因此,我使用以下代码从ftp服务器下载文件:
Process p = new Process();
ProcessStartInfo info = new ProcessStartInfo();
info.WindowStyle = ProcessWindowStyle.Hidden;
info.FileName = "ftp.exe";
info.RedirectStandardInput = true;
info.UseShellExecute = false;
p.StartInfo = info;
p.Start();
using (StreamWriter sw = p.StandardInput)
{
if (sw.BaseStream.CanWrite)
{
sw.WriteLine("open " + folder.server);
sw.WriteLine(folder.cred.user);
sw.WriteLine(folder.cred.password);
sw.WriteLine("get " + file);
sw.WriteLine("close");
sw.WriteLine("quit");
}
}
它工作得非常好,但最后我得到一个控制台输出,上面写着类似于User(*server*:(none)):Password:
,我必须输入一些东西才能继续我的程序
然而,无论我输入什么,我都会得到响应:
User anonymous cannot log in.
有人知道我怎样才能避免吗
我也尝试跳过它,但也没有sw.WriteLine(“”)代码>两者都不p.Close()
似乎起作用
我能做什么?不确定此方法是否可行,如本帖所示:
为什么不直接使用Net.FtpWebRequest
?不-因为我在这里做的是Net.FtpWebRequest
的解决方法。我必须使用本机Windows ftp客户端。我知道这很愚蠢。我们不能帮助解决原始问题,或者建议另一个支持您需要的框架吗?处理交互式应用程序不是一个好办法。或者使用命令fileWell调用FTP.EXE。我尝试的是备份一个“旧”ZyWall 2 plus,它不允许我使用FtpWebRequest(500:未知命令/520:未实现命令)。maschines分步教程希望我现在就做我的代码所做的事情。接着说:(是的,我知道,我喜欢为同一个问题发布多个问题!尝试停止。)