我是CSharp编程的新手。我需要从文件夹中读取多个excel文件。我不知道该文件夹中的Excel文件数量。我想逐个阅读所有文件。为了阅读一个文件,我写了一些代码。我想应用此代码逐个读取文件夹中的所有文件。请让我知道。这是我的代码。
class RatWalk
{
public List<RatStep> steps = new List<RatStep>();
string[] Individal_Runs = Directory.GetFiles(@"C:\Users\AG_Winter\Desktop\Individual_Runs");
public void LoadFromFile(String fileName) // reads data from excel file
{
steps.Clear();
XlsFile file = new XlsFile(fileName);
try
{
// Everything I wanna do
}
catch (NullReferenceException ex)
{
Console.Out.WriteLine("No run");
}
}
}
谢谢大家。我不知道如何回复帖子,因为评论应该是有限数量的字符。所以我在这里打字。
在我的程序中,我想从一个文件夹中逐个读取xlsx文件。我现在使用按钮浏览单个文件。但后来我想用这个按钮浏览我有文件的文件夹。因此,当我选择此文件夹时,程序应该自动逐个运行该文件夹中的所有文件。这就是我之前所做的。
[\ code = c#] 类RatWalk { public List steps = new List();
public void LoadFromFile(String fileName) // reads data from excel file
{
steps.Clear();
XlsFile file = new XlsFile(fileName);
try{
//everything I wanna do
}赶上{} }
private void InitializeComponent()
{
EventHandler handler = new EventHandler(OnClick);
button.Text = "Browse for the XLS file";
// button properties
this.Controls.Add(button);
}
private void OnClick(object sender, EventArgs e) // Browses for the file and loads the selected Excel file
{
OpenFileDialog fileDialog = new OpenFileDialog();
if (fileDialog.ShowDialog() != DialogResult.OK)
return;
ratWalk.LoadFromFile(fileDialog.FileName);
// Whatever I wanna do
}
在这里,我想改变它,当我点击按钮并选择文件夹时,它应该逐个运行文件夹中的所有文件。
请让我知道如何做到这一点。
谢谢。
答案 0 :(得分:3)
我会给你一个例子,并留给你做其余的事。
string [] fileEntries = Directory.GetFiles(sourceDir);
foreach(string fileName in fileEntries)
{
// do something with fileName
Console.WriteLine(fileName);
}
顺便说一下,这并不会通过子文件夹进行迭代。
答案 1 :(得分:1)
string[] Individal_Runs = Directory.GetFiles(@"D:\testfiles");
foreach (string s in Individal_Runs)
{
try
{
String theConnString= "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + s + ";Extended Properties=Excel 8.0;";
OleDbConnection objConn = new OleDbConnection(theConnString);
objConn.Open();
OleDbCommand objCmdSelect = new OleDbCommand("SELECT * FROM [sheet1$]", objConn);
OleDbDataAdapter objAdapter1 = new OleDbDataAdapter();
objAdapter1.SelectCommand = objCmdSelect;
DataSet objDataset1 = new DataSet();
objAdapter1.Fill(objDataset1, "XLData");
//Your code here
objConn.Close();
}
catch (NullReferenceException ex)
{
Console.Out.WriteLine("No run");
}
}
答案 2 :(得分:0)
using System;
using System.IO;
namespace FileOperationsSample
{
class Program
{
static void Main(string[] args)
{
// Change this path to the directory you want to read
string path = "C:\\Junk";
DirectoryInfo dir = new DirectoryInfo(path);
Console.WriteLine("File Name Size Creation Date and Time");
Console.WriteLine("=================================================================");
foreach (FileInfo flInfo in dir.GetFiles())
{
String name = flInfo.Name;
long size = flInfo.Length;
DateTime creationTime = flInfo.CreationTime;
Console.WriteLine("{0, -30:g} {1,-12:N0} {2} ", name, size, creationTime);
}
Console.ReadLine();
}
}
}