在.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。也许您需要先启用它。
我想通过我的 [=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。也许您需要先启用它。