Console.WriteLine("Down loading file...");
using (FileStream fs = new FileStream(Directory.GetCurrentDirectory() + "\\getCommand.txt", FileMode.Create, FileAccess.ReadWrite))
{
using (StreamWriter writer = new StreamWriter(fs))
{
writer.WriteLine("lcd {0}", tempDirectory);
writer.WriteLine("mget -r {0}", serverDirectory);
}
}
process.StandardInput.WriteLine("psftp.exe {0}@{1} -pw {2} -b getCommand.txt -bc -be", user, host, password);
process.StandardInput.WriteLine("exit");
//string output = process.StandardOutput.ReadToEnd();
//Console.Write(output);
//Console.WriteLine("Down load finished!");
Console.WriteLine("Waiting...");
process.WaitForExit();--这里就卡住了。
process.Close();程序部署在Win2003,WinXp都可以。但是在WinServer2008下就出现问题了。请帮忙看看,貌似搞不定了

解决方案 »

  1.   

    就是从linux服务器上下载文件,如果手动的用fstp下载是可以的。但是程序今后不可能都手动获取文件。所以我通过shell登录fstp下载。
      

  2.   

    Process process = new Process();
    process.StartInfo.FileName = "cmd.exe";
    process.StartInfo.UseShellExecute = false;
    process.StartInfo.RedirectStandardOutput = true;
    process.StartInfo.RedirectStandardError = true;
    process.StartInfo.RedirectStandardInput = true;
    process.StartInfo.CreateNoWindow = true;
    Console.WriteLine("Down loading file...");
    using (FileStream fs = new FileStream(Directory.GetCurrentDirectory() + "\\getCommand.txt", FileMode.Create, FileAccess.ReadWrite))
    {
    using (StreamWriter writer = new StreamWriter(fs))
    {
    writer.WriteLine("lcd {0}", tempDirectory);
    writer.WriteLine("mget -r {0}", serverDirectory);
    }
    }
    process.StandardInput.WriteLine("psftp.exe {0}@{1} -pw {2} -b getCommand.txt -bc -be", user, host, password);
    process.StandardInput.WriteLine("exit");
    //string output = process.StandardOutput.ReadToEnd();
    //Console.Write(output);
    //Console.WriteLine("Down load finished!");
    Console.WriteLine("Waiting...");
    process.WaitForExit();--这里就卡住了。
    process.Close();
    代码都贴出来了,再看不懂,我也无奈了
      

  3.   

    应该是你的FTP程序卡住了,所以一直退出不了。