我正在尝试构建一个metro应用程序,该应用程序将从同一家庭组中的另一台计算机加载图像文件(所有计算机都使用带有工作组的Windows 8 x64)。我找到的所有样本都不使用子文件夹或使用filepicker。 由于我的所有图像都在同一个文件夹中,而且我知道它们的名字,所以我不想使用filepicker。 我在appxmanifest中激活了“图片库”,我可以列出家庭组中的目录/计算机,但我一直在打开文件或子文件夹。
这就是我的所作所为:
var folder = await Windows.Storage.KnownFolders.HomeGroup.GetFolderAsync("homegroupname");
foreach (var a in await folder.GetFoldersAsync())
{
Debug.WriteLine(a.Name.ToString());
}
这给了我一个家庭组计算机的列表(如预期的那样)。
这是我尝试过的没有成功的事情:
folder = await Windows.Storage.KnownFolders.HomeGroup.GetFolderAsync(@"homegroupname\computername");
folder = await folder.GetFolderAsync(@"computername");
这些尝试没有奏效,我的想法也用尽了。我必须在某个地方允许该文件夹吗?我打开(子)文件夹的方式是正确的吗?
答案 0 :(得分:0)
我用以下(几乎直观的)方法做到了: 我为正确类型的文件创建一个CommonFileQuery,并选择一个具有拟合名称的文件。
List<string> fileTypeFilter = new List<string>();
fileTypeFilter.Add(".jpg");
fileTypeFilter.Add(".png");
var queryOptions = new QueryOptions(CommonFileQuery.OrderByDate, fileTypeFilter);
var query = KnownFolders.HomeGroup.CreateFileQueryWithOptions(queryOptions);
IReadOnlyList<StorageFile> fileList = await query.GetFilesAsync();
StorageFile file = fileList.FirstOrDefault(x => x.Name == "123_123.jpg");