ftp进程不会关闭(c#)

时间:2015-06-24 10:52:42

标签: c# process cmd ftp

编辑3:The solution

编辑2: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()似乎也没有。{/ p>

我该怎么办?

1 个答案:

答案 0 :(得分:1)

不确定这种方法是否可行如此线程所暗示的那样:

Why I cannot get the output of ftp.exe by code?