不要使用WinSCP .NET程序集遍历目录

时间:2014-01-02 18:58:41

标签: winscp winscp-net

我正在尝试使用WinSCP .NET程序集将文件夹的内容(但不包含具有备份文件,存档文件和错误文件的子文件夹)上传到服务器。这甚至可能吗?如果是这样,我该怎么做?

我现有作品的快速代码片段:

// string mode ...
// Session sess ...
// TransferOperationResult res ...

TransferOptions tOpts = new TransferOptions();
tOpts.FileMask = c.SearchPattern;
tOpts.TransferMode = TransferMode.Binary;
tOpts.PreserveTimestamp = true;

SetMessage("Uploading files");
res = sess.PutFiles(Path.Combine(c.LocalPath, c.SearchPattern),
                    c.RemotePath, 
                    c.DeleteAfterXFer, 
                    tOpts);

是否有某种方式可以说明:

tOpts.TopDirectoryOnly = true

1 个答案:

答案 0 :(得分:2)

使用file mask |*/ to exclude all (sub-)directories

使用TransferOptions.FileMask property设置文件掩码。

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

session.PutFiles(@"d:\toupload\*", "/home/user/", false, transferOptions).Check();

特别针对您的样本,请执行以下操作:

tOpts.FileMask = c.SearchPattern + "|*/";

还在WinSCP常见问题How do I transfer (or synchronize) directory non-recursively?

中记录