如何区分使用SharpSSH检索的SFTP列表中的目录?

时间:2015-03-09 07:37:38

标签: c# sftp sharpssh

我需要通过SharpSsh以递归方式将文件从服务器下载到SFTP。但我不明白如何确定文件名或目录。 现在我这样做了

 static void recDir(string remotePath, string localPath)
 {
     Sftp _c = this.sftp;
     ArrayList FileList = _c.GetFileList(remotePath);
     FileList.Remove(".");
     FileList.Remove("..");
     for (int i = 0; i < FileList.Count; i++)
     {
         try
         {
             _c.Get(remotePath + "/" + FileList[i], localPath + "/" + FileList[i]);

             Console.WriteLine("File: " + remotePath + "/" + FileList[i]);
         }
         catch (Exception e)
         {
             Console.WriteLine("Dir: " + remotePath + "/" + FileList[i]);
                System.IO.Directory.CreateDirectory(localPath + "/" + FileList[i]);
                recDir(remotePath + "/" + FileList[i], localPath + "/" + FileList[i]);
         }
     }
 }

它有效,但似乎不正确。

1 个答案:

答案 0 :(得分:2)

SharpSSH API不允许这样做。但是你可以编写它,因为SharpSSH是开源的。请注意,SharpSSH是一个糟糕的选择。它没有维持多年。


查看我对其他类似SharpSSH问题的回答:

或使用其他SFTP库: