我目前正在处理一个Windows 10 UWP项目,我一直得到以下例外情况:
无法将“System.IO.FileSystemInfo[]”类型的对象强制转换为System.IO.FileSystemInfo[]类型
这就是抛出它的代码:
DirectoryInfo dirInfo = new DirectoryInfo(path);
FileInfo[] files = dirInfo.GetFiles(path);路径是一个有效的路径,我多次验证它,我不知道为什么我会得到这个异常。DirectoryInfo类仍然可以在UWP应用程序中使用,还是应该使用等效的类?
发布于 2017-08-21 07:27:40
DirectoryInfo类适用于UWP。然而,它有很多的局限性。例如路径是否有效。有关更多细节,您可以参考跳过路径:坚持使用StorageFile。
当我传递Second path fragment must not be a drive or UNC name参数时,它会引发path异常。我找到了下面的描述。
要与文件名匹配的搜索字符串。此参数可以包含有效的文字路径和通配符(*和?)的组合。字符(见备注),但不支持正则表达式。默认模式是"*",它返回所有文件。
所以我修改了searchPattern,如下所示,它运行得很好。
string root = Windows.ApplicationModel.Package.Current.InstalledLocation.Path;
string path = root + @"\Assets\Media";
DirectoryInfo dirinfo = new DirectoryInfo(path);
FileInfo[] files = dirinfo.GetFiles("head.*");我不知道为什么我会得到这个例外。DirectoryInfo类仍然可以在UWP应用程序中使用,还是应该使用等效的类?
在UWP中查询文件的最佳做法是使用文件夹选择器选择一个文件夹并使用GetFilesAsync方法枚举所有文件。例如:
var picker = new Windows.Storage.Pickers.FolderPicker();
picker.SuggestedStartLocation = Windows.Storage.Pickers.PickerLocationId.PicturesLibrary;
picker.FileTypeFilter.Add("*");
picker.ViewMode = Windows.Storage.Pickers.PickerViewMode.Thumbnail;
var folder = await picker.PickSingleFolderAsync();
if(folder != null)
{
StringBuilder outputText = new StringBuilder();
var query = folder.CreateFileQuery();
var files = await query.GetFilesAsync();
foreach (StorageFile file in files)
{
outputText.Append(file.Name + "\n");
}
}https://stackoverflow.com/questions/45772750
复制相似问题