【发布时间】:2016-09-15 19:18:44
【问题描述】:
我目前正在尝试使用 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 似乎正在尝试删除链接文件夹。我想要的是删除符号链接本身,而不是后面的文件夹。
【问题讨论】: