2013-02-14 8 views
0

Я пытаюсь загрузить файл на сервер с помощью sftp. Я загрузил и установил Chilkat, и я загружаю файлы без каких-либо проблем. Но когда я пытаюсь загрузить файлы на сервер, я не получаю никаких ошибок, заявляя, что загрузка файлов. Когда я проверяю ответные сообщения, он говорит «Успех загрузки файла 1», а один - true Но файлы не загружаются на сервер.Проблемы с загрузкой файлов с помощью Chilkat

это мой код:

public void UploadAndMoveFile() 
     { 
      bool success = false; 
      string path = @"\\geodis\"; 
      string archive = @"\\Archive\"; 
      string[] files = Directory.GetFiles(path); 
      if (files.Count() == 0) 
      { 
//no files 
      } 

      foreach (string file in files) 
      { 
       string fileName = Path.GetFileName(file); 
       string fileSource = path + fileName; 
       string fileDestination = archive + fileName; 
       string handle; 
       string ftp = @"\IN\"+fileName; 
       handle = sftp.OpenFile(ftp, "writeOnly", "createTruncate"); 
       if (handle == null) 
       { 
        Console.WriteLine(sftp.LastErrorText); 
        return; 
       } 
       success = sftp.UploadFile(handle, fileSource); 
       if (success == true) 
       { 
        AppendLogFile("Uploading File Succeeded", "Uploade File", fileName); 
        System.IO.File.Move(fileSource, fileDestination); 
        AppendLogFile("Moving File Succeeded", "Moving File", fileName); 
       } 
       else 
       { 
        // no files 
       } 
      } 
     } 

Может кто-нибудь помочь мне узнать, что я делаю неправильно?

ответ

0

Обнаружена проблема, в методе загрузки у меня была переменная handle вместо переменной ftp.

вот решение:

public void UploadAndMoveFile() 
     { 
      bool success = false; 
      string path = @"\\geodis\"; 
      string archive = @"\\Archive\"; 
      string[] files = Directory.GetFiles(path); 
      if (files.Count() == 0) 
      { 
//no files 
      } 

      foreach (string file in files) 
      { 
       string fileName = Path.GetFileName(file); 
       string fileSource = path + fileName; 
       string fileDestination = archive + fileName; 
       string handle; 
       string ftp = @"\IN\"+fileName; 
       handle = sftp.OpenFile(ftp, "writeOnly", "createTruncate"); 
       if (handle == null) 
       { 
        Console.WriteLine(sftp.LastErrorText); 
        return; 
       } 
       success = sftp.UploadFile(ftp, fileSource); 
       if (success == true) 
       { 
        AppendLogFile("Uploading File Succeeded", "Uploade File", fileName); 
        System.IO.File.Move(fileSource, fileDestination); 
        AppendLogFile("Moving File Succeeded", "Moving File", fileName); 
       } 
       else 
       { 
        // no files 
       } 
      } 
     } 
Смежные вопросы