我在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.IO.FileSystem.dll中的'System.InvalidCastException' 附加信息:无法将类型为'System.IO.FileSystemInfo []'的对象强制转换为'System.Collections.Generic.IEnumerable`1 [System.IO.DirectoryInfo]'。
在PCL中,我可以用不同的方式在“工作”代码上面写这个不同的行为吗?
谢谢和最诚挚的问候 迈克尔
答案 0 :(得分:0)
Windows Phone应用程序不使用操作的文件系统 系统并限制使用隔离存储来保持和 访问文件,因此此命名空间不提供任何其他内容 功能。
http://msdn.microsoft.com/en-us/library/windowsphone/develop/system.io%28v=vs.105%29.aspx
您还应该看看这个SO answer.