2016-07-11 1 views
1

Ich habe versucht, die Dateinamen aus meinem lokalen Ordner, während eine Ausnahme herausspringt (System.UnauthorisedAccessException)System.UnauthorisedAccessException

Versuchte mit viel-Lösung zum Abrufen aber work..I gewährt hat noch keinen Anwender die volle Kontrolle von der Ordnereigenschaften, Ausführen als Administrator etc ...

Hier ist mein Code

Class1.cs

public static async Task<ObservableCollection<GroupInfoList>> generatename() 
{ 
    ObservableCollection<GroupInfoList> newdata = new ObservableCollection<GroupInfoList>(); 
    StorageFolder f2 = await StorageFolder.GetFolderFromPathAsync(@"E:\Videos\Misc"); 
    List<string> filetypefilter = new List<string>(); 
    filetypefilter.Add(".mp4"); 
    QueryOptions query = new QueryOptions(CommonFileQuery.OrderBySearchRank, filetypefilter); 
    StorageFileQueryResult queryresult = f2.CreateFileQueryWithOptions(query); 
    IReadOnlyList<StorageFile> files = await queryresult.GetFilesAsync(); 
    try { 
     newdata.Add(new GroupInfoList() { Items = files[0].Name });    
     } 
    catch(System.UnauthorizedAccessException e) { } 
    return newdata; 
} 
public async static Task<ObservableCollection<GroupInfoList>> GetContacts() 
{ 
    ObservableCollection<GroupInfoList> cgroup = new ObservableCollection<GroupInfoList>(); 
    var x = await generatename(); 
    var query = from item in x 
       group item by item.Items[0] into g 
       orderby g.Key 
       select new { GroupName = g.Key, Items = g }; 
    foreach (var item in query) 
    { 
     GroupInfoList c1 = new GroupInfoList(); 
     c1.Key = item.GroupName; 
     foreach (var item2 in item.Items) 
     { 
      c1.Add(item2); 
      //c1.Items = item2.Items; 
     } 
     cgroup.Add(c1); 
    } 
    return cgroup; 
} 

MainPage.xaml.cs

Antwort

1

UWP-Apps funktionieren wenig anders - Sie können keinen direkten Zugriff auf Dateien über den Pfad haben. Ihre App muss zuerst permission to access Dateien und Ordner haben. Es gibt zwei Möglichkeiten, diese zu erhalten - indem Sie File/FolderPickers verwenden und Bibliotheken verwenden, wie zum Beispiel KnownFolders.VideosLibrary - für die zweite Option müssen Sie geeignete Funktionen hinzufügen. Sobald Sie einen Ordner mit Berechtigungen haben, sollten Sie in der Lage sein, auf die darin enthaltenen Dateien zuzugreifen.