积极答复者
【WinRT】怎么实现历遍指定文件夹并返回该文件夹所有的文件名

问题
答案
-
您好,
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.- 已标记为答案 Xavier Xie-MSFTModerator 2015年12月22日 3:03
全部回复
-
ApplicationData.LocalFolder
StorageFolder.GetFoldersAsync加上遞歸調用, 應該就行了吧
在現實生活中,你和誰在一起的確很重要,甚至能改變你的成長軌跡,決定你的人生成敗。 和什麼樣的人在一起,就會有什麼樣的人生。 和勤奮的人在一起,你不會懶惰; 和積極的人在一起,你不會消沈; 與智者同行,你會不同凡響; 與高人為伍,你能登上巔峰。
-
您好,
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.- 已标记为答案 Xavier Xie-MSFTModerator 2015年12月22日 3:03
-
感谢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;
} -
老眼昏花, 我以為只要歷遍文件夾.
如果要同時歷遍文件與文件夾, 其實用 StorageFolder.GetItemsAsync() 也行, 而且他同時可以取得文件與文件夾型態的物件.
在現實生活中,你和誰在一起的確很重要,甚至能改變你的成長軌跡,決定你的人生成敗。 和什麼樣的人在一起,就會有什麼樣的人生。 和勤奮的人在一起,你不會懶惰; 和積極的人在一起,你不會消沈; 與智者同行,你會不同凡響; 與高人為伍,你能登上巔峰。