我在PCL中遇到了以下方法的强制转换错误,这在遗留类库中没有问题。
protected FolderInfo GetFolderInfo(string folderPath, int level = 0)
{
FolderInfo folderInfo = new FolderInfo(folderPath);
if (settings.MaxDepthLevel == 0 || level < settings.MaxDepthLevel)
{
try
{
DirectoryInfo currentDirectoryInfo = new DirectoryInfo(folderPath);
foreach (DirectoryInfo directoryInfo in currentDirectoryInfo.GetDirectories())
{
if (settings.SkipHiddenFolders && directoryInfo.Attributes.HasFlag(FileAttributes.Hidden))
{
continue;
}
FolderInfo subFolderInfo = GetFolderInfo(directoryInfo.FullName, level + 1);
folderInfo.Folders.Add(subFolderInfo);
subFolderInfo.Parent = folderInfo;
}
foreach (FileInfo fileInfo in currentDirectoryInfo.EnumerateFiles())
{
if (settings.SkipHiddenFiles && fileInfo.Attributes.HasFlag(FileAttributes.Hidden))
{
continue;
}
folderInfo.Files.Add(fileInfo);
}
folderInfo.Files.Sort((x, y) => x.Name.CompareTo(y.Name));
}
catch (UnauthorizedAccessException)
{
}
}
return folderInfo;
}我得到以下错误:

引发的异常:“'System.Collections.Generic.IEnumerable`1System.IO.DirectoryInfo'.”中的“System.InvalidCastException”附加信息:无法将“System.IO.FileSystemInfo[]”类型的对象强制转换为键入System.IO.FileSystem.dll
在PCL中,我在“工作”代码上面写这段代码的方式有多不同?
谢谢,并向迈克尔问好
发布于 2016-02-10 13:24:55
Windows Phone应用程序不使用操作系统的文件系统,仅限于使用隔离存储来持久化和访问文件,因此此命名空间不提供任何附加功能。
http://msdn.microsoft.com/en-us/library/windowsphone/develop/system.io%28v=vs.105%29.aspx
您还应该看看这个SO answer.
https://stackoverflow.com/questions/35313780
复制相似问题