在 WinSCP 中,您可以在文件掩码中使用 * 作为上传路径吗

In WinSCP can you use the * for upload path in filemask

我正在尝试设置 WinSCP 文件掩码,以便将本地目录中的任何文件逐个文件上传到远程目录,而不包括远程目录中的本地目录名称本身。以下作品:

TransferOperationResult tR;
tR = session.PutFiles(_localPath + "*", _remotePath);

但我想使用文件掩码而不是 + "*"

// Upload files
TransferOptions transferOptions = new TransferOptions();
transferOptions.FileMask = "*";

TransferOperationResult tR;
tR = session.PutFiles(_localPath, _remotePath, false, transferOptions);

这可能吗?使用 **.* 文件掩码,然后 _localPath 会上传目录中的所有文件,但也会在远程目录中包含本地目录名称。我检查了 WinSCP filemask and TransferOptions 但我没有看到一个简单的方法...

保留 _localPath + "*" 并在其上设置 TransferOptions.FileMask

或者更好,使用 RemotePath.Combine

TransferOptions transferOptions = new TransferOptions();
// a sample filemask, so that it makes a sense to set the FileMask 
transferOptions.FileMask = "*>1H"; 

string sourcePath = RemotePath.Combine(_localPath, "*");
TransferOperationResult tR;
tR = session.PutFiles(sourcePath, _remotePath, false, transferOptions);

查看 localPath parameter 的文档:

Full path to local file or directory to upload. Filename in the path can be replaced with Windows wildcard to select multiple files. To upload all files in a directory, use mask *.

所以参数的值必须是/foo/bar/*.

TransferOptions.FileMasklocalPath 参数中通配符之上的附加过滤器。