1

[问题] WinSCP可以处理Junction目录吗?

我正在使用 C++/CLI 使用 WinSCP .NET 程序集(版本 5.5.3)编写 SFTP 程序。我的程序读入一个计划文件。最初获取文件的源路径必须是绝对路径。现在我必须支持相对路径,我遇到了一个问题。

以下是尝试获取主目录中的所有文本文件。当然,我也想获取主目录内所有子目录中的所有文本文件。所以我使用:

transferOptionObject->FileMask = "*.txt";
transferResult = sftpSession->GetFiles(".", "C:\\temp\\receive", false, 
                 transferOptionObject);

假设我们使用这个账号terry登录远程计算机,远程主目录是/C/Users/terry/Documents. 从session->DebugLog文件中,我发现 WinSCP 试图检查主目录中的所有文件和目录。

名单是:

* a.txt
* firstDirectory
* My Music
* My Photos
* My Videso
* OtherDirectory
* Other.txt

WinSCP 遍历列表中的每个项目。处理后firstDirectory,它会尝试处理My Music。但是,由于权限被拒绝,它会返回一个错误,因为它无法处理。

然后我去服务器,然后做一个dir. 我发现这 3 个“我的”目录是 [Junction]:

29-Apr-14  09:44    <DIR>          .
29-Apr-14  09:44    <DIR>          ..
16-Jan-14  09:48    <DIR>          Documents
16-Jan-14  09:45    <JUNCTION>     My Music [C:\Users\terry\Music]
16-Jan-14  09:45    <JUNCTION>     My Pictures [C:\Users\terry\Pictures]
16-Jan-14  09:45    <JUNCTION>     My Videos [C:\Users\terry\Videos]

我检查了这些并找出了这些: 主题“同步已损坏”;;追踪器错误 1132 ;; 主题:“WinSCP 在同步时不检查硬链接目标日期”

他们有关系吗?

4

1 回答 1

0

因为它是一个远程联结/文件夹,而 SFTP 协议对联结一无所知,所以这一切都与您的 SFTP 服务器有关。这与客户端(WinSCP)无关,因为它甚至不知道它是一个连接点。您的 SFTP 服务器很可能只是将联结显示为文件夹。虽然它也可以将它作为一个文件夹的符号链接呈现(但在这种情况下,WinSCP 会默默地跳过它)。


旁注:远程目标目录的路径应以斜杠结尾。
请参阅https://winscp.net/eng/docs/library_session_getfiles

于 2014-05-14T05:37:44.427 回答