我想开发一个基于Windows Phone的应用程序,我需要将文件夹中的文件数量(此文件夹已经是项目的一部分)放到列表中,以便在运行时我可以访问这些文件。如果有人能告诉我如何做到这一点,那将是很大的帮助。
在普通的WPF应用程序中,我们可以编写类似
的代码DirectoryInfo di = new DirectoryInfo("D:\\Tempo");
FileInfo[] fi = di.GetFiles("*", SearchOption.AllDirectories);
MessageBox.Show(fi.Length.ToString());
但Windows手机里面的解决方案我该怎么做?
我可以通过此代码获得单个文件访问
if (Application.GetResourceStream(new Uri("/WindowsPhone;component/Folder/file09.jpg", UriKind.Relative)) != null)
{
MessageBox.Show("Hi");
}
但是在该文件夹中有很多文件,我想将它们放入列表中,所以在运行时我可以访问这些图像。但是用户不会知道这一点,所以它应该是C#代码,而不是XAML代码。任何帮助都会很棒。
答案 0 :(得分:1)
这很简单。
确保将特定文件夹添加到解决方案中。与您在该文件夹中所需的任何文件一起。
确保每个文件的属性设置如下:
构建操作:内容
复制到输出目录:不要复制
确保在调用
之前已加载应用程序假设我有一个名为" Testfiles"然后我想从中读取:
private void PhoneApplicationPage_Loaded(object sender, RoutedEventArgs e)
{
ReadAllFilesFromFolder("Testfiles");
}
// TODO: recursion to get subfolders and files (maybe?)
public async void ReadAllFilesFromFolder(string folder_name)
{
var package = Windows.ApplicationModel.Package.Current.InstalledLocation;
var assetsFolder = await package.GetFolderAsync(folder_name);
foreach (var file in await assetsFolder.GetFilesAsync())
{
// TODO: whatever you want to do with file
// string filename = file.Name;
}
}