2017-05-19 4 views
0

Filepickerや任意の種類のピッカーを使用せずに、特定のフォルダと特定の名前に格納されている画像の画像またはパスを取得したい。私はこれをプログラムでC#を使用して行う必要があります。その特定の名前の外部URLから画像を保存する方法があり、その画像またはそのパスを取得する必要があります。 「Windows Phone 8.1」でWindows Phoneでfilepickerを使用せずに画像を選択する8.1

public async Task GetBCardImageFromWeb(string url) 
    { 
     StorageFolder picsFolder = KnownFolders.SavedPictures; 
     StorageFile file = await picsFolder.CreateFileAsync(
      "MyBusinessCardImageEmail.jpg", CreationCollisionOption.GenerateUniqueName); 

     HttpClient client = new HttpClient(); 
     string path = url; 
     byte[] responseBytes = await client.GetByteArrayAsync(path); 

     var stream = await file.OpenAsync(FileAccessMode.ReadWrite); 

     using (var outputStream = stream.GetOutputStreamAt(0)) 
     { 
      DataWriter writer = new DataWriter(outputStream); 
      writer.WriteBytes(responseBytes); 
      await writer.StoreAsync(); 
      await outputStream.FlushAsync(); 
     } 
    } 

    public async Task<StorageFile> FetchImageFileFromPhone() 
    { 
     string fileName = "MyBusinessCardImageEmail.jpg"; 
     StorageFolder myfolder = KnownFolders.PicturesLibrary; 
     StorageFile file = await myfolder.GetFileAsync(fileName); 
     //file = Windows.Storage.FileIO.ReadBufferAsync(file); 
     return file; 
     //using (Stream stream = (await file.OpenReadAsync()).AsStreamForRead()) 
     //using (BinaryReader reader = new BinaryReader(stream)) 
     //{ 
     // Windows.Storage.FileProperties.BasicProperties x = await file.GetBasicPropertiesAsync(); 
     // await stream.FlushAsync(); 
     // return stream; 
     //} 
    } 

答えて

0

問題を解決しました。実際に私はストリームを処分していませんでした。

using (var outputStream = stream.GetOutputStreamAt(0)) 
      { 
       DataWriter writer = new DataWriter(outputStream); 
       writer.WriteBytes(responseBytes); 
       await writer.StoreAsync(); 
       await outputStream.FlushAsync(); 
       outputStream.Dispose(); 
      } 
      //}); 
      await stream.FlushAsync(); 
      stream.Dispose(); 
関連する問題