首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >FilePicker Windows Phone 8.1

FilePicker Windows Phone 8.1
EN

Stack Overflow用户
提问于 2015-06-28 14:20:57
回答 2查看 389关注 0票数 0

当想要在PicturesLibrary中选择一个图像时,这段代码可以工作:

代码语言:javascript
复制
        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”。

我该怎么做呢?

感谢您的阅读!祝你有美好的一天!

EN

回答 2

Stack Overflow用户

发布于 2015-06-28 23:06:07

".SuggestedStartLocation“在windows phone 8.1中不受支持/不起作用。

对于我的相机应用程序,我使用了以下内容:

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

代码语言:javascript
复制
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;
        }
    }
}

选择所需的文件夹:

代码语言:javascript
复制
public void folder_listbox_SelectionChanged(object sender, SelectionChangedEventArgs e)
{
    savefolder = folder_listbox.SelectedItem.ToString();
    get_files();
}

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

代码语言:javascript
复制
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);
    }
}

选择文件:

代码语言:javascript
复制
public void file_listbox_SelectionChanged(object sender, SelectionChangedEventArgs e)
{
    selectedfilename = file_listbox.SelectedItem.ToString();
}
票数 0
EN

Stack Overflow用户

发布于 2015-06-29 00:09:22

无论是手机应用程序还是windows商店应用程序,FileOpenPicker都不能被建议到自定义位置。

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

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

在mcb的回答中,有一点我是不能同意的,那就是.SuggestedStartLocation在windows phone8.1中不受支持/起作用。事实并非如此,windows phone 8.1应该支持它,但并不是所有的选项都能在手机上运行。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/31096768

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档