2011-08-02 2 views
4

온라인으로 epub 파일을 다운로드 중입니다. 이를 위해 먼저 Directory.CreateDirectory을 사용하여 디렉토리를 만든 다음 다음 코드를 사용하여 파일을 다운로드했습니다.Windows Phone 7에서 프로그래밍 방식으로 다운로드 한 파일을 검색하는 방법은 무엇입니까?

WebClient webClient = new WebClient(); 
webClient.DownloadStringAsync(new Uri(downloadedURL), directoryName); 
webClient.DownloadProgressChanged += 
        new DownloadProgressChangedEventHandler(ProgressChanged); 
webClient.DownloadStringCompleted += 
        new DownloadStringCompletedEventHandler(Completed); 

올바른 다운로드 방법입니까? 다운로드 된 파일을보고 격자에 표시하는 코드는 무엇입니까?

+0

어떤 파일을 다운로드하고 있습니까? – Waleed

+0

.epub 파일입니다. – Shri

답변

8

1) Windows Phone에서 Directory.CreateDirectory을 사용하지 마십시오. 이 경우 직접 디렉토리를 생성

WebClient client = new WebClient(); 
client.OpenReadCompleted += new OpenReadCompletedEventHandler(client_OpenReadCompleted); 
client.OpenReadAsync(new Uri("your_URL")); 


void client_OpenReadCompleted(object sender, OpenReadCompletedEventArgs e) 
{ 
    var file = IsolatedStorageFile.GetUserStoreForApplication(); 

    using (IsolatedStorageFileStream stream = new IsolatedStorageFileStream("file.epub", System.IO.FileMode.Create, file)) 
    { 
     byte[] buffer = new byte[1024]; 
     while (e.Result.Read(buffer, 0, buffer.Length) > 0) 
     { 
      stream.Write(buffer, 0, buffer.Length); 
     } 
    } 
} 

선택 사항입니다 : 파일 다운로드

var file = IsolatedStorageFile.GetUserStoreForApplication(); 
file.CreateDirectory("myDirectory"); 

2) 웹 클라이언트를 통해이 방법을 수행 할 수 있습니다 대신, 격리 된 저장소에서 작동되기 때문에, 당신은 사용할 필요가 . 파일을 중첩 된 폴더 구조로 저장해야하는 경우 파일 경로를 /Folder/NewFolder/file.epub과 같이 설정할 수도 있습니다. 분리 저장 파일을 열거 할 수

3), 당신은 사용할 수 있습니다

파일이 IsoStore의 루트에있는 경우입니다
var file = IsolatedStorageFile.GetUserStoreForApplication(); 
file.GetFileNames(); 

. 디렉토리 안에있는 경우 검색 패턴을 설정하고 폴더 이름과 파일 유형을 포함하여 GetFileNames으로 전달해야합니다. 모든 단일 파일에 대해 다음 패턴을 사용할 수 있습니다.

DIRECTORY_NAME\*.* 
+0

감사합니다. 출력을 얻는 데 도움이되었습니다. – Shri

1

파일이 없습니다. DownloadStringCompleted 이벤트 인수에는 HTTP 요청의 결과 인 문자열이 들어있는 Result 멤버가 들어 있습니다. 이벤트 처리기에서 이것을 e.Result

으로 볼 수 있습니다. 나는 epub 파일의 형식에 익숙하지 않습니다. 그러나 텍스트 파일이 아니라면 코드가 제대로 작동하지 않습니다.

대신 webclient.OpenReadAsync와 방법론의 DownloadStringAsync와 비슷한 해당 이벤트를 사용해야합니다. 단, e.Result는 이진 데이터를 읽는 데 사용할 수있는 스트림입니다.

+0

답장을 보내 주셔서 감사합니다. webclient.openreadasync를 사용하여 다운로드하려고합니다. 하지만, 내 질문은 파일을 다운로드 한 후 저장된 경로를 검색하는 방법입니다. 다운로드 한 파일을 확인할 수 있도록 – Shri

+0

직접 저장하기 전에 파일이 없습니다. 하나는 문자열을 반환하고, 다른 하나는 Peter Wone이 제안한 것처럼 스트림을 반환합니다. –

관련 문제