在.NET中同步本地网络NAS上的文件

时间:2018-05-04 18:35:18

标签: c# .net synchronization winscp winscp-net

我希望通过我的WPF / C#应用程序将C:\Apps目录中的所有文件夹单向同步到 NAS \\192.168.1.20\Sebastian\Backup的备份目录中。

我为这项工作选择了WinSCP:
https://winscp.net/eng/docs/library#csharp

示例(请参阅链接)没有帮助。我不知道应该使用哪种协议。

var sessionOptions = new SessionOptions
{
    Protocol = Protocol.Ftp,
    HostName = @"\\192.168.1.20",
    UserName = "Sebastian",
    Password = "MyNasPassword"
};

using (Session session = new Session())
{
    // Will continuously report progress of synchronization
    session.FileTransferred += FileTransferred;

    // Connect
    session.Open(sessionOptions);

    // Synchronize files
    SynchronizationResult synchronizationResult;
    synchronizationResult = session.SynchronizeDirectories
       (SynchronizationMode.Remote, @"C:\Apps", @"\\192.168.1.20\Sebastian\Backup", true);

    // Throw on any error
    synchronizationResult.Check();
}

我只得到错误(在行中session.Open(sessionOptions); )

  

连接失败

1 个答案:

答案 0 :(得分:1)

WinSCP只能通过FTP,SFTP和其他类似协议工作。虽然您希望通过本地网络同步文件(尽管您的代码不是FTP)。这不是WinSCP可以做到的。

虽然大多数NAS都支持FTP或SFTP。也许你需要先启用它。