繁体   English   中英

如何读取文件夹中的多个texfile并将每个文本文件存储在数组C#中

[英]How to read mulitple texfiles in a folder and store each text file in an array C#

我想将文本存储在字符串数组中的文本文件中,并将其遍历到数据网格视图表中。 有什么办法可以做到吗

 private string[] textfiles = Directory.GetFiles("D:\\UPLOADS", "*.txt")
                                 .Select(Path.GetFileName)
                                 .ToArray();

我使用上述方法来获取文本文件。

 for (int i = 0; i < excelfiles.Length; i++)
        {
            dt.Rows.Add(i, excelfiles[i], File.ReadAllText(textfiles[i]) , "24/12/16", "3.42pm", 837482, "Approve / Reject");
        }

但是我得到以下错误。

Could not find file 'C:\\Program Files (x86)\\IIS Express\\[2016-12-30] lololololol.xlsm(desc).txt'.

我的路径是D:\\ UPLOADS

这是完整的代码。

protected void Page_Load(object sender, EventArgs e)
    {

    }

    private string[] excelfiles = Directory.GetFiles("D:\\UPLOADS", "*.xlsm")
                                 .Select(Path.GetFileName)
                                 .ToArray();
    private string[] textfiles = Directory.GetFiles("D:\\UPLOADS", "*.txt")
                                 .Select(Path.GetFileName)
                                 .ToArray();




    protected void btnSubmit_Click(object sender, EventArgs e)
    {
        GridView1_SelectedIndexChanged(sender, e);
    }

    protected void GridView1_SelectedIndexChanged(object sender, EventArgs e)
    {
        DataTable dt = new DataTable();
        dt.Columns.Add("ExcelID", typeof(int));
        dt.Columns.Add("excelName", typeof(string));
        dt.Columns.Add("excelDescription", typeof(string));
        dt.Columns.Add("date", typeof(string));
        dt.Columns.Add("time", typeof(string));
        dt.Columns.Add("empID", typeof(int));
        dt.Columns.Add("firstApproval", typeof(string));

        for (int i = 0; i < excelfiles.Length; i++)
        {
            dt.Rows.Add(i, excelfiles[i], File.ReadAllText(textfiles[i]) , "24/12/16", "3.42pm", 837482, "Approve / Reject");
        }


        GridView1.DataSource = dt;
        GridView1.DataBind();
    }

谢谢

加载文本文件时,从完整文件名中修剪路径D:\\ UPLOADS。 因此,当您尝试读取文件名的内容时,没有任何路径可提供给File.ReadAllText

这将强制该方法尝试从没有此类文件的当前进程目录(... \\ IIS Express ...)中读取。

您需要该路径来检索文件内容,因此可以删除Linq Select部件并仅留下...。

 private string[] textfiles = Directory.GetFiles("D:\\UPLOADS", "*.txt");

在这种情况下,您会发现一些相关的API。

Directory.GetFiles()返回文件夹中所有文件的完整路径数组。

File.ReadAllText()以字符串形式返回文件的所有内容。

使用这两个,您绝对应该能够实现您所请求的功能。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM