当我将以下行添加到我的WPF应用程序中时,我有一些奇怪的问题.
private void button1_Click(object sender, RoutedEventArgs e)
{
foreach(string files in Directory.GetFiles(path,".",SearchOption.TopDirectoryOnly))
tb_FileBrowse.Text = files;
}
Run Code Online (Sandbox Code Playgroud)
问题是,在框架3.5,上述方法并没有什么,甚至不是一个错误,但如果我将其更改为框架4.5 它的作品!此外,如果我使用Framework 3.5并将其更改为ConsolApp,就像这样
foreach (string files in Directory.GetFiles(path, ".", SearchOption.TopDirectoryOnly))
{
Console.WriteLine("{0}",files);
}
Run Code Online (Sandbox Code Playgroud)
代码给出了一些结果.
有没有人有同样的问题?
Phi*_*hil 11
我试过这个并得到了相同的结果.使用Resharper钻取API源代码可以发现.NET 3.5和4.5版本的Directory.GetFiles完全不同.
特别是.NET 4.5版本包含此功能(而.NET 3.5不支持):
private static string NormalizeSearchPattern(string searchPattern)
{
string searchPattern1 = searchPattern.TrimEnd(Path.TrimEndChars);
if (searchPattern1.Equals("."))
searchPattern1 = "*";
Path.CheckSearchPattern(searchPattern1);
return searchPattern1;
}
Run Code Online (Sandbox Code Playgroud)
这解释了为什么搜索模式为'.' 适用于.NET 4.5但不适用于3.5.
你应该使用'*'或'*.*'来兼容.
| 归档时间: |
|
| 查看次数: |
1218 次 |
| 最近记录: |