我需要像这样使用StreamReader
StreamReader fichRecheio = new StreamReader(@"G:\C#Projects\folder1\*.tl2",System.Text.Encoding.Default);
但它给了我一个错误:
未处理的例外 - 路径中的非法字符
如果我把文件的名称而不是*工作正常。
该目录中只有一个文件。我只是不知道名称,只是扩展名
谢谢
答案 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
}