2013-03-18 168 views
0

我有一些圖片存儲在Media Libary中,請點擊此處查看。現在我需要在使用照片選擇器任務選擇圖像後獲取圖像的名稱。我使用照片選擇器任務來選擇圖像,然後獲取圖像的路徑。我的章節目標是從路徑獲取名稱:WP7:獲取圖像的名稱哪些圖像存儲在Libary圖片中?

private void button1_Click(object sender, RoutedEventArgs e) 
{    
    PhotoChooserTask objPhotoChooser = new PhotoChooserTask(); 
    objPhotoChooser.Completed += new EventHandler<PhotoResult>(PhotoChooseCall); 
     objPhotoChooser.Show();    
} 

void PhotoChooseCall(object sender, PhotoResult e) 
     { 
      switch (e.TaskResult) 
      { 
       case TaskResult.OK: 
        BinaryReader objReader = new BinaryReader(e.ChosenPhoto); 
        image1.Source = new BitmapImage(new Uri(e.OriginalFileName)); 
        MessageBox.Show("Photo's name: " + e.OriginalFileName.ToString());      
        break; 
       case TaskResult.Cancel: 
        MessageBox.Show("Cancelled"); 
        break; 
       case TaskResult.None: 
        MessageBox.Show("Nothing Entered"); 
        break; 
      } 
     } 

輸出:

照片的名字:\應用程序\ DATA \ C80566AB-E17E-495℃,81A1-3FCAE34D3DEDE \ DATA \ PlatformData \ PhotoChooser,a8208960- 3597-40fc-9b4f-869afcf822b6.jpg

之後我選擇了相同的圖像。它的名稱將改變(PhotoChooser-a8208960-3597-40fc-9b4f-869afcf822b6.jpg將改變)。我認爲這不是照片的名稱。

所以:

  1. 我們能獲得圖像的名字嗎?

  2. 我們該怎麼辦?

回答

1

你可以得到實際的文件名。使用MediaLibrary爲:

MediaLibrary lib = new MediaLibrary(); 
var collection = lib.RootPictureAlbum; 

foreach (var p in collection.Albums[0].Pictures) 
    Debug.WriteLine(p.Name); 

請注意,我指定根畫冊裏面的相冊索引。 0將用於示例圖片,依此類推。如果您需要抓取圖像的內容,只需使用p.GetImage();即可獲取可讀流。

+0

我做到了。非常感謝! – 2013-03-20 07:59:46

0

不能。您無法獲取文件的名稱,因爲它在圖片集線器中。您將獲得流的副本並具有不同的臨時名稱。