ftp进程获胜';t关闭(c#)

ftp进程获胜';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";

编辑3:

编辑2:can
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分步教程希望我现在就做我的代码所做的事情。接着说:(是的,我知道,我喜欢为同一个问题发布多个问题!尝试停止。)