【问题标题】:How to create text file based on date in c#如何在c#中根据日期创建文本文件
【发布时间】:2014-02-13 12:30:58
【问题描述】:

我有一个从服务器数据中不断填充的文本文件。这是文本文件中存在的示例数据..

1/1/2014   234  34  456788889989 23 
1/1/2014   234  34  456788889989 23 
1/1/2014   234  34  456788889989 23 
2/1/2014   234  34  456788889989 23 
2/1/2014   234  34  456788889989 23 
2/1/2014   234  34  456788889989 23 
3/1/2014   234  34  456788889989 23 
3/1/2014   234  34  456788889989 23 
3/1/2014   234  34  456788889989 23 

这是我创建文本文件的代码..

System.IO.File.WriteAllText(@"D:\datewise.txt", "");

这里对于每个日期都有很多数据以行的形式出现。现在,一旦日期更改,我必须创建一个文本文件并将所有数据从示例文本文件复制到新创建的文本文件。如何实现这一点?

【问题讨论】:

  • 任何代码 sn-ps 你到目前为止做了什么?
  • 这里的示例文本文件是什么,不清楚的请详细说明
  • @Aaron 帖子中的数据是示例文本文件。
  • 好的,还有一个查询,您不知道如何将一个文本文件复制到另一个文本文件,或者您不知道日期更改时该怎么办?
  • 您不能让服务器将 datewise.txt 文件命名为 20140122.txt 之类的名称并在它不存在时创建它吗?如果服务器在创建新文件时尝试写入,您可能需要处理一些锁定问题。但是无论如何你都会遇到这个问题,因为文件不能只是增长和增长

标签: c# string text-files file-handling


【解决方案1】:
    using System.Text.RegularExpressions;
    using System.IO;
    using System.Text;

    string pattern = "^3/1/2014.*"; 
    string strPath = new string("c:\\"); 
    string strDateTime = DateTime.Now.ToString("yyyyMMdd"); 
    string FileToCopy = "c:\\regexTest.txt"; 
    string NewCopy = strPath + strDateTime + ".txt"; 
    StringBuilder sb = new StringBuilder(""); 
    if (System.IO.File.Exists(FileToCopy) == true) { 
    string[] lines = File.ReadAllLines(FileToCopy); 
    foreach (string line in lines) { 
    if (Regex.IsMatch(line, pattern)) { 
    sb.Append(line + System.Environment.NewLine); 
    } 
    } 
    } 

    if (sb.Length > 0) { 
    System.IO.File.WriteAllText(NewCopy, sb.ToString); 
    }

【讨论】:

  • 清理它并根据您的需求量身定制,但我使用您的示例数据对其进行了测试,它可以按照您解释的要求工作。
猜你喜欢
  • 2013-05-08
  • 2012-03-02
  • 2019-06-24
  • 1970-01-01
  • 2023-02-22
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多