Страница:  1   | 
		
		
			
	
		 
		
			
  
      
    
Вопрос: VB.net - как скачать файл с ftp-сервера (с указ...  
     
    
Добавлено:  06.06.03 21:40 
     
      
   
		
			
			  
    
      
Автор вопроса:    Gr  | Web-сайт:   www.vbnet.ru
       
     
    
      
Доброго времени суток!
 Как в VB.net скачать файл с ftp-сервера с указанием имени пользователя и пароля. Если есть какой-нибудь бесплатный компонент для VB.net/6, желательно со свойством сколько процентов скачано.
 P.S. из тех вариантов что были предложены по этому вопросу на этом форуме мне подошел один вариант (бесплатный ocx FTPClient, но там нету свойства сколько % скачано).
 Спасибо!
Ответить 
      
 
     
  
		
			
		
		
			
		
	  
	  
    
      
Номер ответа:  2Автор ответа:   Alex  
Вопросов:  0Ответов:  3 
       
      
 Профиль  |  | #2 
       
Добавлено:   11.08.09 16:46
       
     
    
      
Загрузка на фтп:
 
Public  Sub  Upload(ByVal  filename As  String )
 
  
        Dim  ftpServerIP As  String  = "80.90.100.110" 
 
        Dim  ftpUserID As  String  = "login" 
 
        Dim  ftpPassword As  String  = "password" 
 
        Dim  fileInf As  New  IO.FileInfo(filename)
 
        Dim  uri As  String  = "ftp://"  + ftpServerIP + "/"  + fileInf.Name
 
        Dim  reqFTP As  System.Net.FtpWebRequest
 
  
         
  
        reqFTP = System.Net.FtpWebRequest.Create(New  Uri(uri))
 
  
         
  
        reqFTP.Credentials = New  System.Net.NetworkCredential(ftpUserID, ftpPassword)
 
  
         
  
         
  
        reqFTP.KeepAlive = False 
 
  
         
  
        reqFTP.Method = System.Net.WebRequestMethods.Ftp.UploadFile
 
  
         
  
        reqFTP.UseBinary = True 
 
  
         
  
        reqFTP.ContentLength = fileInf.Length
 
  
         
  
        Dim  buffLength As  Integer  = 2048
 
        Dim  buff(buffLength) As  Byte 
 
        Dim  contentLen As  Integer 
 
  
         
        Dim  fs As  IO.FileStream = fileInf.OpenRead()
 
        Try 
 
  
             
  
            Dim  strm As  IO.Stream = reqFTP.GetRequestStream()
 
  
             
  
            contentLen = fs.Read(buff, 0, buffLength)
 
  
             
  
            While  contentLen <> 0
 
                 
  
                 
                strm.Write(buff, 0, contentLen)
 
                contentLen = fs.Read(buff, 0, buffLength)
 
            End  While 
 
  
             
  
            strm.Close()
 
            fs.Close()
 
        Catch  ex As  Exception
 
            MessageBox.Show(ex.Message, "Upload Error" )
 
        End  Try 
 
    End  Sub   
 
 
Процент загрузки здесь сделать, думаю, не сложно.
Ответить 
      
 
     
  
	  
    
      
Номер ответа:  3Автор ответа:   Alex  
Вопросов:  0Ответов:  3 
       
      
 Профиль  |  | #3 
       
Добавлено:   11.08.09 16:48
       
     
    
      
Загрузка с фтп (на C#, но переделывается аналогично как я переделал вариант выше):
 
private  void  Download(string  filePath, string  fileName)
 
{
 
    FtpWebRequest reqFTP;
 
    try 
 
    {
 
        //filePath = <<The full path where the 
 
  
        //file is  to be created. the>>, 
 
  
        //fileName = <<Name of the file to be createdNeed not 
 
  
        //name on FTP server. name name()>>
 
  
        FileStream outputStream = new  FileStream(filePath + 
 
                                "\\"  + fileName, FileMode.Create);
 
  
        reqFTP = (FtpWebRequest)FtpWebRequest.Create(new  Uri("ftp://"  + 
 
  
                                ftpServerIP + "/"  + fileName));
 
        reqFTP.Method = WebRequestMethods.Ftp.DownloadFile;
 
        reqFTP.UseBinary = true ;
 
        reqFTP.Credentials = new  NetworkCredential(ftpUserID, 
 
                                                    ftpPassword);
 
        FtpWebResponse response = (FtpWebResponse)reqFTP.GetResponse();
 
        Stream ftpStream = response.GetResponseStream();
 
        long  cl = response.ContentLength;
 
        int  bufferSize = 2048;
 
        int  readCount;
 
        byte [] buffer = new  byte ;
 
  
        readCount = ftpStream.Read(buffer, 0, bufferSize);
 
        while  (readCount > 0)
 
        {
 
            outputStream.Write(buffer, 0, readCount);
 
            readCount = ftpStream.Read(buffer, 0, bufferSize);
 
        }
 
  
        ftpStream.Close();
 
        outputStream.Close();
 
        response.Close();
 
    }
 
    catch  (Exception ex)
 
    {
 
        MessageBox.Show(ex.Message);
 
    }
 
}  
Ответить 
      
 
     
  
	  
	  
	  
	  Страница:  1   | 
 
		
			Поиск по форуму