c# - 尝试连接到命令提示符并执行 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();
解决方案
想到了两种可能:
你在 serverPath 中有写权限吗?(能够连接并不意味着您可以连接。)
在put之前,设置传输模式
process.StandardInput.WriteLine(@"binary");
否则请描述系统响应...“不工作”可能意味着“不响应(超时)”、“返回错误 XXX”、“完成,似乎成功但文件未传输”等。
推荐阅读
- c# - CreateProcessAsUser hToken 为零
- python - 如何使用 xlsxwriter 将数据写入 xlsx 文件?
- angular - Angular 以编程方式要求的验证器不起作用
- python - python *args 位置参数列表
- flutter - 执行“Flutter Clean”命令后,项目构建文件夹被删除。现在,我无法运行或构建应用程序
- java - UnsatisfiedDependencyException:创建名为“homeController”的 bean 时出错:通过字段“dao”表示不满足的依赖关系
- reactjs - 转义“导入”和 react/html 以在 MDX 中显示为文本?
- swift - SwiftUI 从 List 导航到不同的视图
- calendar - 如何在shamsi日历中找到公共日子?
- r - 我想将特定列中的值更改为 R 中的单个值