4

我正在尝试从以下代码中获取以下信息:[今天的日期]___[文本文件名].txt:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.IO;

namespace ConsoleApplication29
{
    class Program
    {
        static void Main(string[] args)
        {
            WriteToFile();

        }

        static void WriteToFile()
        {

            StreamWriter sw;
            sw = File.CreateText("c:\\testtext.txt");
            sw.WriteLine("this is just a test");
            sw.Close();
            Console.WriteLine("File created successfully");



        }
    }
}

我尝试放入,DateTime.Now.ToString()但我无法合并字符串。

有谁能够帮助我?我想要我正在创建的新文本文件标题前面的日期。

4

4 回答 4

21
static void WriteToFile(string directory, string name)
{
    string filename = String.Format("{0:yyyy-MM-dd}__{1}", DateTime.Now, name);
    string path = Path.Combine(directory, filename);
    using (StreamWriter sw = File.CreateText(path))
    {
        sw.WriteLine("This is just a test");
    }
}

致电:

WriteToFile(@"C:\mydirectory", "myfilename");

注意几点:

  • 使用自定义格式字符串指定日期,并避免在 NTFS 中使用非法字符。
  • 前缀包含带有“@”字符串文字标记的路径的字符串,因此您不必转义路径中的反斜杠。
  • 使用 Path.Combine() 组合路径部分,并避免使用路径分隔符。
  • 创建 StreamWriter 时使用 using 块;退出块将释放 StreamWriter,并自动为您关闭文件。
于 2009-06-02T18:46:54.333 回答
13

您想在 DateTime.Now 上执行自定义字符串格式。您可以使用 String.Format() 将结果与您的基本文件名结合起来。

要附加到文件名的路径上,请使用 Path.Combine()。

最后,使用 using() 块在完成后正确关闭和处置您的 StreamWriter...

string myFileName = String.Format("{0}__{1}", DateTime.Now.ToString("yyyyMMddhhnnss"), "MyFileName");
strign myFullPath = Path.Combine("C:\\Documents and Settings\\bob.jones\\Desktop", myFileName)
using (StreamWriter sw = File.CreateText(myFullPath))
{
    sw.WriteLine("this is just a test");
}

Console.WriteLine("File created successfully");

编辑:修复了“C:\Documents and Settings\bob.jones\Desktop”路径的示例

于 2009-06-02T18:31:41.557 回答
1

试试这个:

string fileTitle = "testtext.txt";
string fileDirectory = "C:\\Documents and Settings\username\My Documents\";
File.CreateText(fileDirectory + DateTime.Now.ToString("ddMMYYYY") + fileTitle);

?

于 2009-06-02T18:33:32.333 回答
0

要在您对@Scott Ivey 的回答的评论中回答问题:要指定文件的写入位置,请在调用 CreateText() 之前或之前添加所需的文件名路径。

例如:

String path = new String (@"C:\Documents and Settings\bob.jones\Desktop\");
StreamWriter sw = File.CreateText(path + myFileName);

或者

String fullFilePath = new String (@"C:\Documents and Settings\bob.jones\Desktop\");
fullFilePath += myFileName;
StreamWriter sw = File.CreateText(fullFilePath);
于 2009-06-02T18:59:03.997 回答