【问题标题】:how to convert FileInfo object to string如何将 FileInfo 对象转换为字符串
【发布时间】:2014-06-20 13:24:46
【问题描述】:

我正在从一个文件夹中挑选 txt 文件,因为我在订购这些文件后根据它们各自的修改日期订购这些文件,我必须逐一阅读每个文件的内容。什么是可能的解决方案。因为我无法将 FileInfo 对象转换为字符串以下是 sn-p。 在输出中:我希望根据修改日期对所有文件进行排序,并希望一一阅读。 谢谢

string sourcePath = @"C:\sample\*.log";
DirectoryInfo dir = new DirectoryInfo(sourcePath);
FileInfo[] files = dir.GetFiles(sourcePath).OrderBy(order => order.LastWriteTime).ToArray();
foreach (var item in files)
{
  listBox1.items.Add(item)
}

【问题讨论】:

  • 具体说明问题所在。你的输出是什么?你期待看到什么?您似乎希望这能神奇地输出文件的内容。请RTFM.
  • 也许您正在寻找FileInfo.NameFileInfo.FullName
  • 在输出中:我希望所有文件都根据修改日期排序,并希望一一阅读。
  • @user3584501 当您完全改变原来的要求时,很难为您提供帮助。

标签: c# file inputstream


【解决方案1】:

使用File.ReadAllTextFileInfo.FullName 属性获取路径:

listBox1.items.Add(File.ReadAllText(item.FullName));

如果您只想获取文件的FileName,请使用FileInfo.Name 属性,例如:

listBox1.items.Add(item.Name);

如果您要获取文件路径,请使用FileInfo.FullName,例如:

listBox1.items.Add(item.FullName);

【讨论】:

  • 我认为 OP 想要列出文件的名称,而不是文件的内容。也许他们只需要item.Name
  • @drew_w, "我要一一阅读每个内容。"是在问题中,但仍然添加它:)
【解决方案2】:

使用方法 File.ReadAllText 读取每个文件。

        string sourcePath = @"C:\sample\*.log";
        DirectoryInfo dir = new DirectoryInfo(sourcePath);
        FileInfo[] files = dir.GetFiles(sourcePath).OrderBy(order => order.LastWriteTime).ToArray();
        foreach (var item in files)
        {
            string filecontent = File.ReadAllText(item.FullName);
            //do your job here 
             ......
            listBox1.items.Add(item.Name);
        }

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-02-03
    • 2018-07-19
    • 2019-07-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多