我将游戏从完整的桌面.net移植到UWP,我需要解决的一件事是如何将纹理,着色器等加载到游戏的UWP版本中。
在桌面版本中,我使用FileSystemWatcher来执行此操作,但在UWP中不存在FileSystemWatcher,即使在我完全控制的目录中也是如此。
是否有UWP的等价物?
使用UWP中有限的一组API实现此目的的最佳方法是什么?
答案 0 :(得分:8)
是否有UWP的等价物?
您可以为查询的存储文件订阅ContentChanged event。
例如:
List<string> fileTypeFilter = new List<string>();
fileTypeFilter.Add(".txt");
fileTypeFilter.Add(".png");
var options = new Windows.Storage.Search.QueryOptions(Windows.Storage.Search.CommonFileQuery.OrderByName, fileTypeFilter);
var query = ApplicationData.Current.LocalFolder.CreateFileQueryWithOptions(options);
//subscribe on query's ContentsChanged event
query.ContentsChanged += Query_ContentsChanged;
var files = await query.GetFilesAsync();
private void Query_ContentsChanged(Windows.Storage.Search.IStorageQueryResultBase sender, object args)
{
//TODO:
}
这将搜索并返回应用程序本地文件夹中的所有.txt和.png文件,如果查询中的文件被添加,删除或修改,则此事件将被触发。