首页 > 解决方案 > 尝试连接到命令提示符并执行 put 操作

问题描述

我正在尝试从 c# 代码访问命令提示符,并想做 FTP 从 ftp 服务器获取和放置文件。通过使用以下代码,我可以连接到 FTP 服务器。但是,put 命令不起作用。请协助。

        var process = new Process {StartInfo = startInfo};
        process.Start();
        process.StandardInput.WriteLine(@"cd "+localPath);
        process.StandardInput.WriteLine(@"dir");
        process.StandardInput.WriteLine(@"ftp "+serverURL);
        process.StandardInput.WriteLine(@""+username);
        process.StandardInput.WriteLine(@""+password);
        process.StandardInput.WriteLine(@"cd "+serverPath);
        process.StandardInput.WriteLine(@"put "+fileName);
        process.StandardInput.WriteLine(@"bye");
        process.StandardInput.WriteLine(@"exit");

        process.WaitForExit();

标签: c#

解决方案


想到了两种可能:

  1. 你在 serverPath 中有写权限吗?(能够连接并不意味着您可以连接。)

  2. 在put之前,设置传输模式

    process.StandardInput.WriteLine(@"binary");

否则请描述系统响应...“不工作”可能意味着“不响应(超时)”、“返回错误 XXX”、“完成,似乎成功但文件未传输”等。


推荐阅读