我想从文件夹中读取许多分隔文件。但是,代码中的调用仅针对一个文本文件。
System.IO.StreamReader file =new System.IO.StreamReader(@"C:\Orders\OrdersForImport.txt");
我想要更改“OrdersForImport.txt”。
我的文本文件是OrdersForImport,OrdersForImport1,OrdersForImport2,OrdersForImport3等。
“.txt”扩展名不会改变是不变的。只有文件名才会改变
答案 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>我试过你所有的答案