1

我正在尝试通过以下操作开发一个简单的 SFTP 文件传输项目

  1. 上传
  2. 下载
  3. 在远程服务器中移动文件
  4. 删除文件

在上传时,session.PutFiles()我们有一个称为transferOptions.FileMask过滤文件的属性。

但我没有在里面和里面看到任何类似的session.MoveFile()东西session.RemoveFiles()

我的问题是,如果我只需要移动/删除选定的文件,我该怎么办?

4

1 回答 1

3

Session.RemoveFiles接受文件 掩码

所以你可以这样做:

session.RemoveFiles("/home/user/*.txt");

这与Session.PutFiles. 这TransferOptions.FileMask实际上用于高级选择,例如当您想要递归选择文件时,或者当您想要排除某些类型的文件时。

session.PutFiles(@"c:\toupload\*.txt", "/home/user/");

使用TransferOption.FileMask,WinSCP 将递归上传所有匹配的文件。虽然使用简单的文件掩码作为 的参数.PutFiles,但它不是递归的。


实际上,它的Session.MoveFile第一个参数也支持文件掩码,尽管它是一个未记录的功能。

一种正确的方法是列出远程目录,选择所需的文件并Session.MoveFile为每个文件调用。

请参阅列出与通配符匹配的文件。这是一个 PowerShell 示例,但将其映射到 C# 应该很容易。

于 2014-11-26T15:33:00.443 回答