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

Synchronizing files on local network NAS in .NET

我想通过我的 [=27= 将 C:\Apps 目录中的所有文件夹单向同步到 NAS \192.168.1.20\Sebastian\Backup 的备份目录中]# 申请。

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

示例(参见 link)没有帮助。我不知道应该使用哪种协议。

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); )

Connection failed

WinSCP 只能在 FTP、SFTP 和其他类似协议上工作。当您想通过本地网络同步文件时(尽管您的代码不是 FTP)。这不是 WinSCP 可以做到的。

尽管大多数 NAS 支持 FTP 或 SFTP。也许您需要先启用它。