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()たが、弦を組み合わせることができません。

誰か助けてもらえますか?作成する新しいテキストファイルのタイトルの日付をFRONTに入力します。

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 に答える