如何在C# WinSCP .NET中设置文件名修改的替换选项?
WinSCP .NET 中“文件名替换”选项的设置方法
GUI里“传输设置”→“文件名修改”组的“替换”复选框,对应WinSCP .NET类库的TransferOptions.FileNameReplacements属性,具体设置步骤如下:
- 实例化
TransferOptions对象后,设置transferOptions.FileNameReplacements.Enabled = true,这一步对应勾选GUI里的“替换”复选框。 - 通过
FileNameReplacements.Add()方法添加具体的字符替换规则,支持添加多组替换逻辑。
完整C#代码示例
// 初始化会话配置 SessionOptions sessionOptions = new SessionOptions { Protocol = Protocol.Sftp, HostName = "你的服务器地址", UserName = "用户名", Password = "密码", SshHostKeyFingerprint = "服务器SSH指纹" }; using (Session session = new Session()) { session.Open(sessionOptions); // 初始化传输选项 TransferOptions transferOptions = new TransferOptions(); // 启用文件名替换功能(对应GUI的“替换”复选框) transferOptions.FileNameReplacements.Enabled = true; // 添加替换规则:将空格替换为下划线 transferOptions.FileNameReplacements.Add(' ', '_'); // 可添加多组规则,比如替换冒号为短横线 transferOptions.FileNameReplacements.Add(':', '-'); // 执行本地文件上传 TransferOperationResult transferResult = session.PutFiles(@"C:\本地文件路径\test file.txt", "/远程目录/", false, transferOptions); // 校验传输结果 transferResult.Check(); }
如果需要正则匹配替换,可使用FileNameReplacements.AddRegex()方法,示例:
// 用正则将文件名中所有非字母数字、点的字符替换为下划线 transferOptions.FileNameReplacements.AddRegex(@"[^\w\.]+", "_");
内容的提问来源于stack exchange,提问作者m_collard
相关产品推荐
相关产品推荐

