Download files from SFTP with SSH.NET library

前端 未结 5 1582
眼角桃花
眼角桃花 2020-12-13 04:08
string host = @\"ftphost\";
string username = \"user\";
string password = \"********\";
string localFileName  = System.IO.Path.GetFileName(@\"localfilename\");
strin         


        
5条回答
  •  眼角桃花
    2020-12-13 04:50

    My version of @Merak Marey's Code. I am checking if files exist already and different download directories for .txt and other files

            static void DownloadAll()
        {
            string host = "xxx.xxx.xxx.xxx";
            string username = "@@@";
            string password = "123";string remoteDirectory = "/IN/";
            string finalDir = "";
            string localDirectory = @"C:\filesDN\";
            string localDirectoryZip = @"C:\filesDN\ZIP\";
            using (var sftp = new SftpClient(host, username, password))
            {
                Console.WriteLine("Connecting to " + host + " as " + username);
                sftp.Connect();
                Console.WriteLine("Connected!");
                var files = sftp.ListDirectory(remoteDirectory);
    
                foreach (var file in files)
                {
    
                    string remoteFileName = file.Name;
    
                    if ((!file.Name.StartsWith(".")) && ((file.LastWriteTime.Date == DateTime.Today)))
                    { 
    
                        if (!file.Name.Contains(".TXT"))
                        {
                            finalDir = localDirectoryZip;
                        } 
                        else 
                        {
                            finalDir = localDirectory;
                        }
    
    
                        if (File.Exists(finalDir  + file.Name))
                        {
                            Console.WriteLine("File " + file.Name + " Exists");
                        }else{
                            Console.WriteLine("Downloading file: " + file.Name);
                              using (Stream file1 = File.OpenWrite(finalDir + remoteFileName))
                        {
                            sftp.DownloadFile(remoteDirectory + remoteFileName, file1);
                        }
                        }
                    }
                }
    
    
    
                Console.ReadLine();
    
            }
    

提交回复
热议问题