多文件读取问题
本文关键字:问题 读取 文件 | 更新日期: 2023-09-27 18:36:22
我在单个文件夹中有多个不同名称的文本文件。 我想一个接一个地读取所有文件 -->> * 只在完成第一个文件后读取第二个文件。成功读取后,它应该从目录中删除该文件。我能够读取单个文件。但是当我尝试一次读取所有文件时,它会给出错误.如何使用线程读取和删除文件。所有文件具有相同的格式。
我的示例代码:
StreamReader objReader = new StreamReader("c:'codeo'testm.txt");
string sLine="";
ArrayList arrText = new ArrayList();
while (sLine != null)
{
sLine = objReader.ReadLine();
if (sLine != null)
arrText.Add(sLine);
}
objReader.Close();
foreach (string sOutput in arrText)
Console.WriteLine(sOutput);
Console.ReadLine();
对于德尔 :
private void btnDelete_Click(object sender, EventArgs e)
{
if (File.Exists(fileLoc))
{
File.Delete(fileLoc);
}
}
试试这段代码
DirectoryInfo di = new DirectoryInfo("c:''codeo''");
FileInfo[] fiArray = di.GetFiles();
foreach (FileInfo fi in fiArray)
{
StreamReader objReader = new StreamReader(fi.FullName);
string sLine = "";
ArrayList arrText = new ArrayList();
while (sLine != null)
{
sLine = objReader.ReadLine();
if (sLine != null)
arrText.Add(sLine);
}
objReader.Close();
foreach (string sOutput in arrText)
Console.WriteLine(sOutput);
Console.ReadLine();
}
这需要进一步澄清,例如您收到的错误。 我会这样做的方法是:
//Store all filenames within a List<string>
public void ReadFiles(List<string> filenames)
{
string line = null;
foreach(string file in filenames)
{
//The using will manage the closing and handle exceptions safely
using(StreamReader reader = new StreamReader(file))
{
while((line = reader.readLine()) != null)
Console.WriteLine(line);
}
if(File.Exists(file))
File.Delete(file);
}
}
这段代码未经测试,但我相信它应该可以正常运行。 这对你有帮助吗? 我写这篇文章是基于您在读取后删除文件的需要 - 基于按钮的删除应该很容易实现。 如果您需要更多说明或帮助发表评论。