StreamReader路径使用* - Path中的非法字符

时间:2014-02-25 12:09:58

标签: c# streamreader

我需要像这样使用StreamReader

StreamReader fichRecheio = new StreamReader(@"G:\C#Projects\folder1\*.tl2",System.Text.Encoding.Default);  

但它给了我一个错误: 未处理的例外 - 路径中的非法字符
如果我把文件的名称而不是*工作正常。
该目录中只有一个文件。我只是不知道名称,只是扩展名 谢谢

4 个答案:

答案 0 :(得分:4)

如果我理解你的问题,为什么不这样做:

改为使用Directory.EnumerateFiles()方法。

var sourceDirectory = @"G:\C#Projects\folder1\"
var txtFiles = Directory.EnumerateFiles(sourceDirectory, "*.tl2");

foreach (string currentFile in txtFiles)
{
   StreamReader leFiles = new StreamReader(currentFile, System.Text.Encoding.Default);  
}

答案 1 :(得分:2)

当然,*用于多个文件的通配符匹配。指定一个文件名:

StreamReader fichRecheio = new StreamReader(@"G:\C#Projects\folder1\example.tl2",System.Text.Encoding.Default);

答案 2 :(得分:0)

因为您尝试使用单个流打开多个文件,所以这是不可能的。

您必须指定用于连接阅读器的确切文件名:

 StreamReader fichRecheio = new StreamReader(@"G:\C#Projects\folder1\test.tl2",System.Text.Encoding.Default);

答案 3 :(得分:0)

如果您尝试使用通配符搜索名称中具有特定模式的文件,请使用System.IO.Directory.GetFiles("*.tl2")返回可以枚举的路径数组。

string[] FilePaths = System.IO.Directory.GetFiles("*.tl2");

foreach (file in FilePaths)
{
//process the file
}