2

Ich mache eine Windows 10 UWP App. Als Teil dieser App muss ich in der Lage sein, im Downloads-Ordner des Benutzergeräts zu suchen (nicht im Ordner "Apps Downloads"). Ich habe eine Ordnerauswahl für den Benutzer erstellt, um den Download-Ordner selbst auswählen zu können. Jedoch muss ich dies ohne den Benutzer tun. Hier ist My Folder Picker:Verwenden Sie FolderPicker programmatisch

FolderPicker picker = new FolderPicker(); 
picker.FileTypeFilter.Add("*"); 
picker.ViewMode = PickerViewMode.List; 
picker.SuggestedStartLocation = PickerLocationId.Downloads; 
StorageFolder folder = await picker.PickSingleFolderAsync(); 

Gibt es eine Möglichkeit, in der ich so etwas wie Ordner Picker verwenden könnte, aber hartcodiert, so das Ziel immer an einem Ort (Ordner Downloads) festgelegt ist?

+0

Sie müssen eine Berechtigung für diesen Ordner haben, Sie können Programmmatically KnownFolders verwenden, andernfalls muss der Benutzer Zugriff auf Ihre App per Picker gewähren. Ich bin nicht sicher, ob Sie dies mit offizieller API umgehen können. – Romasz

+0

Vereinbaren Sie mit @Romasz, die [DownloadsFolder] (https://msdn.microsoft.com/en-us/library/windows/apps/xaml/windows.storage.downloadsfolder.aspx) nicht privde Methode zum Durchsuchen der Datei in DownloadsFolder. Es hat Dateimethoden erstellen. –

+0

@JaydenGu Ja Ich bin auf die Begrenzung gestoßen. Ich plante, Benutzer ihre Handbücher zu Downloads speichern zu lassen und dann zu überprüfen, ob sie existierten, um sie zu speichern, sie wieder herunterladend. Ich möchte keine Handbücher in meiner App Sandbox speichern, da diese auch außerhalb der App angezeigt werden sollen. Zurück zum Zeichenbrett und um einen anderen Ansatz zu finden. Danke euch beiden für die Bestätigung, dass es geschätzt wird. –

Antwort

1

Sie dürfen den Ordner "Downloads" nicht durchsuchen. Wenn Sie jedoch nur den Zugriff auf eine Datei wiederherstellen möchten, die Sie zuvor heruntergeladen haben, können Sie FutureAccessList verwenden.

using Windows.Storage.AccessCache; 

file = await DownloadsFolder.CreateFileAsync(...); 
var token = StorageApplicationPermissions.FutureAccessList.Add(file, 
              "anything you like goes here"); 

Wahrscheinlich möchten Sie das Token im lokalen Speicher Ihrer App speichern, damit Sie es nicht vergessen.

Verwenden Sie die token, um in Zukunft auf die Datei zuzugreifen.

Verwandte Themen