在streamreader中读取特定的文本文件

时间:2013-11-13 07:01:05

标签: c# streamreader

我想从文件夹中读取许多分隔文件。但是,代码中的调用仅针对一个文本文件。

System.IO.StreamReader file =new System.IO.StreamReader(@"C:\Orders\OrdersForImport.txt");

我想要更改“OrdersForImport.txt”。

我的文本文件是OrdersForImport,OrdersForImport1,OrdersForImport2,OrdersForImport3等。

“.txt”扩展名不会改变是不变的。只有文件名才会改变

6 个答案:

答案 0 :(得分:0)

你必须运行一个循环然后阅读所有这些...

您可以执行类似

的操作
var name_array = "name1.name2.name3".Split(".");

然后查看和输入一样

var sb = new StringBuilder();
foreach (var entry in name_array)
{
   var name = entry +".txt";
   // read your file here giving the `name` to the streamreader 
}

如果没有更多输入,很难说更多

答案 1 :(得分:0)

拆分连接文件名列表并对每个项重复:

string delimitedNames = "OrdersForImport, OrdersForImport1, OrdersForImport2, OrdersForImport3";
foreach ( string fileName in delimitedNames.Split(",", StringSplitOptions.RemoveEmptyEntries) )
{
     using ( System.IO.StreamReader file =new System.IO.StreamReader(@"C:\Orders\" + fileName.Trim() + ".txt") )
     {
          // do your stuff here
     }
}

答案 2 :(得分:0)

string[] Files = System.IO.Directory.GetFiles(@"C:\Orders");
foreach (string _file in Files)
{
string fileContent = System.IO.File.ReadAllText(_file);
//Do something with fileContent
}

答案 3 :(得分:0)

请尝试以下代码段

DirectoryInfo drInfo = new DirectoryInfo(@"C:\Orders\");
var files = drInfo.GetFiles("OrdersForImport*.txt");
foreach (var item in files)
{
    string content = System.IO.File.ReadAllText(item.FullName);
}

答案 4 :(得分:0)

你可以把所有想要的txt文件放到同一个文件夹中(在这种情况下应该在这里 C:\ Orders ),然后代码搜索所有txt文件,如下面的代码

string folderPath = @"C:\Orders\";
string[] filenames = Directory.GetFiles(folderPath, "*.txt", SearchOption.AllDirectories);
foreach (string filename in filenames)
 {
     using(System.IO.StreamReader file = new System.IO.StreamReader(filename))
     {
         //handle data from text file here
     }
 }

答案 5 :(得分:0)

感谢所有回答,

这是我读取文件夹中所有分隔文件的方法。

  

FileSystemWatcher fileSystemWatcher = new FileSystemWatcher();

     

fileSystemWatcher.Path = @“C:\ Orders \”;

     

string [] dirs = System.IO.Directory.GetFiles(fileSystemWatcher.Path,“* .txt”);

     

System.IO.StreamReader files = new System.IO.StreamReader(dir);

PS>我试过你所有的答案