0

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

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

我希望更改“OrdersForImport.txt”。

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

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

4

6 回答 6

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 
}

很难说没有更多的输入虽然

于 2013-11-13T07:07:32.477 回答
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
     }
}
于 2013-11-13T07:08:40.623 回答
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
}
于 2013-11-13T07:10:05.760 回答
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);
}
于 2013-11-13T07:13:35.947 回答
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
     }
 }
于 2013-11-13T07:21:09.153 回答
0

谢谢大家的回答,

这是我为读取文件夹中所有分隔文件所做的工作。

FileSystemWatcher fileSystemWatcher = new FileSystemWatcher();

fileSystemWatcher.Path = @"C:\Orders\";

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

System.IO.StreamReader 文件 = new System.IO.StreamReader(dir);

PS>我尝试了你所有的答案

于 2013-11-14T02:18:25.837 回答