我目前正在尝试使用 Renci SSH.NET 将文件复制到使用 SFTP 的 Unix 服务器,此外,我想创建一个指向已复制文件的符号链接。这基本上是我的代码的样子,注意变量sftp
是一个工作实例SftpClient
:
string symlinkSource = @"/msyerver/SymSource/Test001"; //source to link to, exists
string newPath = @"/msyerver/somedirectory/Test001"; //place where the symlink should be created
sftp.SymbolicLink(symlinkSource, newPath); //link newPath to symlinkSource, works!
sftp.Delete(newPath); //fails with exception!
问题是:如何正确删除符号链接?请注意:我只想删除指向文件夹的链接Test001
,而不是引用的文件夹本身。为什么这不起作用?不幸的是,SSH.NET 没有抛出有意义的异常,我得到的唯一文本是“失败”,并且由于这在内部通过一些“请求”机制起作用,所以我无法调试问题的确切来源。
当我查看异常时,我发现:
Data: {System.Collections.ListDictionaryInternal}
很明显,看起来 SSH.NET 正在尝试删除链接的文件夹。我想要的是删除符号链接本身,而不是后面的文件夹。