我正在尝试通过以下操作开发一个简单的 SFTP 文件传输项目
- 上传
- 下载
- 在远程服务器中移动文件
- 删除文件
在上传时,session.PutFiles()
我们有一个称为transferOptions.FileMask
过滤文件的属性。
但我没有在里面和里面看到任何类似的session.MoveFile()
东西session.RemoveFiles()
我的问题是,如果我只需要移动/删除选定的文件,我该怎么办?
我正在尝试通过以下操作开发一个简单的 SFTP 文件传输项目
在上传时,session.PutFiles()
我们有一个称为transferOptions.FileMask
过滤文件的属性。
但我没有在里面和里面看到任何类似的session.MoveFile()
东西session.RemoveFiles()
我的问题是,如果我只需要移动/删除选定的文件,我该怎么办?
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# 应该很容易。