none
【WinRT】怎么实现历遍指定文件夹并返回该文件夹所有的文件名 RRS feed

答案

  • ?????
    2015年12月16日 11:55
  • 您好,

    Bill Chung和FAE9D91C 说的都是对的,WinRT的程序,因为它是运行在沙盒里的,考虑到安全性方面的问题,所以它只能访问自己安装包下的文件夹或者你可以访问微软提供的API所允许访问的一些公共文件库(比如图片库)。

    而你说的访问应用的存储文件夹,我这里假设就是你的应用安装包下的某个文件夹,我在我的项目里添加了一个“MyFiles”的文件夹,编译生成时将它复制到安装包里,你可以通过我下面的代码去获取:

    var c = await Windows.ApplicationModel.Package.Current.InstalledLocation.GetFoldersAsync();


    We are trying to better understand customer views on social support experience, so your participation in this interview project would be greatly appreciated if you have time. Thanks for helping make community forums a great place.
    Click HERE to participate the survey.

    2015年12月17日 2:32
    版主

全部回复

  • System.IO.Path里没有找到实现相关功能的函数,还有其他的方法吗?在线等


    2015年12月16日 11:50
  • ?????
    2015年12月16日 11:55
  • 如果是历遍自己应用的存储文件夹,可以实现吗
    2015年12月16日 12:31
  • ApplicationData.LocalFolder
    StorageFolder.GetFoldersAsync

    加上遞歸調用, 應該就行了吧


    在現實生活中,你和誰在一起的確很重要,甚至能改變你的成長軌跡,決定你的人生成敗。 和什麼樣的人在一起,就會有什麼樣的人生。 和勤奮的人在一起,你不會懶惰; 和積極的人在一起,你不會消沈; 與智者同行,你會不同凡響; 與高人為伍,你能登上巔峰。

    2015年12月16日 12:43
  • 这个只能获取已知文件名的文件,和文件夹名吧。。我想要的是获取指定文件夹下的所有文件名(文件夹为应用的存储文件夹
    • 已编辑 哀差闷 2015年12月16日 14:30
    2015年12月16日 14:29
  • 您好,

    Bill Chung和FAE9D91C 说的都是对的,WinRT的程序,因为它是运行在沙盒里的,考虑到安全性方面的问题,所以它只能访问自己安装包下的文件夹或者你可以访问微软提供的API所允许访问的一些公共文件库(比如图片库)。

    而你说的访问应用的存储文件夹,我这里假设就是你的应用安装包下的某个文件夹,我在我的项目里添加了一个“MyFiles”的文件夹,编译生成时将它复制到安装包里,你可以通过我下面的代码去获取:

    var c = await Windows.ApplicationModel.Package.Current.InstalledLocation.GetFoldersAsync();


    We are trying to better understand customer views on social support experience, so your participation in this interview project would be greatly appreciated if you have time. Thanks for helping make community forums a great place.
    Click HERE to participate the survey.

    2015年12月17日 2:32
    版主
  • 感谢Xavier Eoro、FAE9D91C-3F07-4090-91EB-E3F70E4D0617、Bill Chung大神们的相助,小弟成功的实现了想要的功能。

    献上源码,留作参考。

    List<ImageList> imglst = new List<ImageList>();
                public async void AutoImgList()
                {
                    //获取程序安装包下的文件夹名列表
                    var folderName = Windows.ApplicationModel.Package.Current.InstalledLocation.GetFoldersAsync();
                    IReadOnlyList<StorageFolder> rootFolder = await folderName;
                    //历遍文件夹名列表
                    foreach (StorageFolder imgFolder in rootFolder)
                    {   
                        //找到images文件夹
                        if (imgFolder.Name == "images")
                        {
                            //获取images文件夹里的文件名列表
                            IReadOnlyList<StorageFile> imgfile = await imgFolder.GetFilesAsync();
                            foreach (StorageFile images in imgfile)
                            {
                                ImageList b = new ImageList();
                                b.PictureName = images.Name;
                                b.Path = images.Path;
                                imglst.Add(b);
                            }
                        }
                    }
                    lstBoxPictureList.ItemsSource = imglst;

                }

    2015年12月17日 7:13
  • 老眼昏花, 我以為只要歷遍文件夾.

    如果要同時歷遍文件與文件夾, 其實用 StorageFolder.GetItemsAsync() 也行, 而且他同時可以取得文件與文件夾型態的物件.


    在現實生活中,你和誰在一起的確很重要,甚至能改變你的成長軌跡,決定你的人生成敗。 和什麼樣的人在一起,就會有什麼樣的人生。 和勤奮的人在一起,你不會懶惰; 和積極的人在一起,你不會消沈; 與智者同行,你會不同凡響; 與高人為伍,你能登上巔峰。

    2015年12月17日 10:17