0

当想要在 PicturesLibrary 中选择图像时,此代码有效:

        ImagePath = string.Empty;
        FileOpenPicker filePicker = new FileOpenPicker();
        filePicker.SuggestedStartLocation = PickerLocationId.**PicturesLibrary**;
        filePicker.ViewMode = PickerViewMode.Thumbnail;

        // Filter to include a sample subset of file types
        filePicker.FileTypeFilter.Clear();
        filePicker.FileTypeFilter.Add(".bmp");
        filePicker.FileTypeFilter.Add(".png");
        filePicker.FileTypeFilter.Add(".jpeg");
        filePicker.FileTypeFilter.Add(".jpg");

        filePicker.PickSingleFileAndContinue();
        view.Activated += viewActivated; 

我创建了一个文件夹,其中包含我的应用程序的图像。

所以我想把打开的位置:“PicturesLibrary”改成“myFolder”。

我怎样才能做到这一点?

感谢阅读!祝你今天过得愉快!

4

2 回答 2

0

Windows phone 8.1 不支持/不支持“ .SuggestedStartLocation ”。

对于我的相机应用程序,我使用了这个:

清点图片库中的所有文件夹:

string savefolder, selectedfilename;

private async void changefolder_button_click(object sender, RoutedEventArgs e)
{
    folderlist_box.Items.Clear();
    IReadOnlyList<StorageFolder> folderlist = await KnownFolders.PicturesLibrary.GetFoldersAsync();
    string folder_read = "";
    foreach (StorageFolder folder in folderlist)
    {
        if (folder.Name != folder_read)
        //Filter duplicate names like "Camera Roll" from libraries on phone and SDCard (if any).
        //Which one is used depends on: Settings -> Storage Sense.
        {
            folder_listbox.Items.Add(folder.Name);
            folder_read = folder.Name;
        }
    }
}

选择你想要的文件夹:

public void folder_listbox_SelectionChanged(object sender, SelectionChangedEventArgs e)
{
    savefolder = folder_listbox.SelectedItem.ToString();
    get_files();
}

获取图片库子文件夹中的文件:

private async void get_files()
{
    file_listbox.Items.Clear();
    StorageFolder currentfolder = await KnownFolders.PicturesLibrary.GetFolderAsync(savefolder);
    IReadOnlyList<StorageFile> filelist = await currentfolder.GetFilesAsync();
    foreach (StorageFile file in filelist)
    {
        file_listbox.Items.Add(file.Name);
    }
}

选择文件:

public void file_listbox_SelectionChanged(object sender, SelectionChangedEventArgs e)
{
    selectedfilename = file_listbox.SelectedItem.ToString();
}
于 2015-06-28T15:06:07.413 回答
0

无论是手机应用程序还是 Windows 商店应用程序,都无法将 FileOpenPicker 建议到自定义位置。

FileOpenPicker 不是为用户访问设备上的所有文件夹而设计的。实际上,我们可以将其视为一种让用户有机会访问某些用户感知位置(如图片库)的方式。默认情况下,应用程序可以访问某些文件系统位置。通过拥有 FileOpenPicker 或通过声明功能,您可以访问一些额外的文件系统位置。所以不要指望它会像我们以前用于 Windows 桌面应用程序的 FileOpenDialog 一样工作。

我在 mcb 的回答中确实同意的是访问子文件夹(或您的应用程序的本地存储文件夹)的建议方法,该方法使用列表来显示文件夹列表或文件列表以使用户能够访问它。

在 mcb 的回答中我不能同意的是“Windows phone 8.1 不支持/不支持“.SuggestedStartLocation”。”。事实并非如此,windows phone 8.1 应该支持它,但并非所有选项都适用于手机。

于 2015-06-28T16:09:22.277 回答