多文件阅读问题

时间:2012-06-04 17:16:56

标签: c# asp.net .net

我在单个文件夹中有多个具有不同名称的文本文件。我想逐个阅读所有文件 - >> *完成第1后只读取第二个文件。成功阅读之后它应该从目录中删除文件。我能够读取单个文件。但是当我试图一次性读取所有文件时它给出了错误。 如何使用线程读取和删除文件。 所有文件格式相同。

我的示例代码:

        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();

表示del:

             private void btnDelete_Click(object sender, EventArgs e)
             {
              if (File.Exists(fileLoc))
               {
                 File.Delete(fileLoc);
               }
             }

2 个答案:

答案 0 :(得分:0)

试试此代码

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();

}

答案 1 :(得分:0)

这需要更多说明,例如您收到的错误。我会这样做的方式是:

//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);
    }
}

此代码未经测试,但我相信它应该正常运行。这对你有帮助吗?我根据你在阅读后要删除的文件的需要写了这个 - 基于按钮的删除应该很容易实现。如果您需要更多说明或帮助发表评论。