2012-10-25 41 views
1

我想將圖像存儲到本地文件夾,我從http服務器接收。如何將圖像從http服務器存儲到本地文件夾? C#(win8,應用程序)

請求(http:// myServer:myPort /?imageID = 5)傳遞「tif-image-file」。如果我將這個請求輸入到Internet-Explorer中,它可以工作!

我的C#-code:

(...) 
Uri myUri = new Uri("http://myServer:myPort/?imageID=5"); 
StorageFile myFile = StorageFile.GetFileFromApplicationUriAsync(myUri); 
(...) 

但 「MYFILE」 總是空:(

我做了什麼錯

感謝

無形

回答

-1

?!方法GetFileFromApplicationUriAsync被用來加載本地應用程序ressourc ES。所以它不適合你的情況。你需要使用CreateStreamedFileAsnyc方法來創建一個新的文件Storage
http://msdn.microsoft.com/en-us/library/windows/apps/windows.storage.storagefile.createstreamedfileasync.aspx

編輯:在您的情況下,它會更容易使用CreateStreamedFileFromUriAsync():這裏http://msdn.microsoft.com/en-us/library/windows/apps/windows.storage.storagefile.createstreamedfilefromuriasync.aspx

+0

謝謝,這樣的作品,但接下來的問題是,我不能拯救StorageFile 「MYFILE」 ...... StorageFolder文件夾= KnownFolders。( ...); string filename =「image.tif」; 等待myFile.CopyAsync(文件夾,文件名); 有沒有例外,該應用程序只是停止... – Invisibly

+0

你有沒有想過弄清楚這個錯誤? CreateStreamdFileFromUriAsync檢索文件,但是當我嘗試將CopyAsync從流式文件複製到存儲文件時,出現「系統找不到指定的文件(異常來自HRESULT:0x80070002)」異常。有任何想法嗎? – SelAromDotNet

0

確定是我的解決方案:

  1. 我在我的文件夾中創建了一個空文件

    string myFilename = "myfile.tif"; 
    StorageFile myFile = await myFolder.CreateFileAsync(myFilename, CreationCollisionOption.ReplaceExisting); 
    
  2. BackgroundDownloader

    try 
    { 
        var download = new BackgroundDownloader().CreateDownload(myUri, myFile); 
        await download.StartAsync(); 
    } 
    catch (Exception E) 
    { 
        ... 
    } 
    

下一個問題是,它只能如果我改變發行模式從「X64」到「AnyCPU」,反之亦然各一次。如果我不改變釋放模式,我的應用程序什麼也不做。沒有例外,沒有程序崩潰...

這是一個錯誤?

(對不起我的英文不好...)

+0

BackgroundDownloader()很好的解決了這個問題;) –

相關問題