2014-01-11 2 views
0

파일을 다운로드하는 프로그램을 만들고 있지만 파일의 첫 번째 절반 만 다운로드하고 싶습니다. C#에서이 작업을 수행 할 수있는 방법이 있는지 궁금합니다.다운로드를 반으로 나누는 방법

파일의 첫 번째 부분 만 다운로드하는 다운로드 관리자 용입니다. 또한 후반 (가능한 경우)으로 다운로드를 계속하려면 코드가 필요합니다.

+0

왜 U 것 오직 파일의 50 %를 다운로드하고 싶습니까? – Jim

+0

Im 다운로드 관리자를 만드는 중, 그냥 묻지 마라 .... 설명하기가 어렵다. – user3185674

답변

0

당신은 WebRequest 클래스와 WebResponse를를 사용하고 ContentLength 헤더 필드

private void DownloadFile(string someUrl) 
      { 

       byte[] result; 
       byte[] buffer = new byte[4096]; 

       WebRequest wr = WebRequest.Create(someUrl); 

       using (WebResponse response = wr.GetResponse()) 
       { 
        long contentLentgth = response.ContentLength; 
        using (Stream responseStream = response.GetResponseStream()) 
        { 
         using (MemoryStream ms = new MemoryStream()) 
         { 
          int count = 0; 
          long totalBytes = 0; 
          do 
          { 
           count = responseStream.Read(buffer, 0, buffer.Length); 
           totalBytes = totalBytes + count; 
           ms.Write(buffer, 0, count); 
           using (FileStream file = new FileStream("file.bin", FileMode.Create, System.IO.FileAccess.Write)) 
           { 
            byte[] bytes = new byte[ms.Length]; 
            ms.Read(bytes, 0, (int)ms.Length); 
            file.Write(bytes, 0, bytes.Length); 
            ms.Close(); 
           } 
           if (totalBytes>contentLentgth/2) 
           { 
            break; 
           } 
          } while (count != 0); 

         } 
        } 
       } 
      }