如何在常规.Net应用程序中使用.Net Core库?我遇到了this Hanselman文章,解释说我应该使用.Net标准库。问题是,我的代码只适用于核心库(afaik)。
以下方法适用于Core但不适用于标准库。 Core似乎比常规.Net解决方案(Background)更好地处理长路径(超过250个字符限制)。
有没有办法在常规.Net库中使用Core库?
private static List<FileInfo> FastGetFileList(string myBaseDirectory, string searchString = "*.*")
{
var dirInfo = new DirectoryInfo(myBaseDirectory);
return dirInfo.EnumerateDirectories()
.AsParallel()
.SelectMany(di => di.EnumerateFiles(searchString, SearchOption.AllDirectories)).ToList()
.Union(dirInfo.EnumerateFiles(searchString)).ToList();
}
完整的测试解决方案
这将在常规控制台应用程序中失败,并且在从.Net Standard 2.0库调用时也不起作用。在Core控制台应用中,它可以正常工作。
private string path =
@"\\GREATER THAN 250 CHARACTERS NETWORK FOLDER LOCATION"
;
static void Main(string[] args)
{
var temp = FastGetFileList(path);
Console.WriteLine("Success");
Console.ReadLine();
}
private static List<FileInfo> FastGetFileList(string myBaseDirectory, string searchString = "*.*")
{
var dirInfo = new DirectoryInfo(myBaseDirectory);
return dirInfo.EnumerateDirectories()
.AsParallel()
.SelectMany(di => di.EnumerateFiles(searchString, SearchOption.AllDirectories)).ToList()
.Union(dirInfo.EnumerateFiles(searchString)).ToList();
}