- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在尝试使用 WinSCP .NET 库将文件从远程位置同步到本地路径,以便将源文件夹中的新文件或更新文件下载到目的地,以及在目标文件夹中并且已从源文件夹中删除的将从目标文件夹中删除。
同步调用的计算结果如下:
var fileMask = "/FTP_root/Folder_*/*.png>2016-01-01 00:00:00";
var results = session.SynchronizeDirectories(SynchronizationMode.Local,
@"C:\ProjectFolder\AppData",
FTPDirectory,
true,
false,
SynchronizationCriteria.Time,
new TransferOptions() { FileMask = fileMask });
回顾一下,SynchronizeDirectories 的参数是:
SynchronizationMode
LocalPath
RemotePath
RemoveFiles
Mirror
SynchronizationCriteria
TransferOptions
我在这段代码中发现的是,新文件和重命名文件按预期下载,但已从远程文件夹中删除的文件不会被删除,对于重命名文件,旧文件和新文件都不会被删除同步后文件名在本地文件夹中。
最佳答案
同步将文件掩码应用于远程和本地路径,以便在两个方向上识别哪些文件适用于同步。
File Mask 文档 (https://winscp.net/eng/docs/file_mask) 的相关部分是:
“对于部分路径掩码,使用反斜杠 () 还是正斜杠 (/) 都没有区别;掩码将始终适用于本地和远程路径”
“您还可以指定本地和远程特定文件或目录的完整路径”
“完整路径掩码仅匹配本地或远程路径,具体取决于使用的语法”
在这种情况下,似乎使用完整路径掩码导致掩码仅应用于远程路径。对于支持新文件、重命名和删除的同步,路径掩码应该通过使用相对路径在远程和本地匹配,例如
var fileMask = "*/Folder_*/*.png";
或者除了远程匹配之外,还包括一个匹配本地的掩码:
var fileMask = @"C:\ProjectFolder\AppData\Folder_*\*.png; /FTP_root/Folder_*/*.png;
我只是简单地测试了后一种方法,但它似乎也有效(尽管需要考虑掩码中的大小和时间限制)。相对路径方法适用于我的情况,尽管它并不完全等同于完整路径方法(因为它也可能匹配目录层次结构中较低的文件夹)。
关于c# - WinSCP .NET SynchronizeDirectories 在从远程文件夹中删除本地文件后不会删除它们,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36405414/
我正在尝试使用 WinSCP .NET 库将文件从远程位置同步到本地路径,以便将源文件夹中的新文件或更新文件下载到目的地,以及在目标文件夹中并且已从源文件夹中删除的将从目标文件夹中删除。 同步调用的计
我在 PowerShell 中使用 WinSCP .NET 程序集与 SFTP 服务器进行文件同步。我正在使用以下代码进行同步: http://winscp.net/eng/docs/library_
我是一名优秀的程序员,十分优秀!