Creando un nuevo archivo .txt con fecha en frente, C #

Estoy tratando de obtener lo siguiente: [fecha de hoy] ___ [nombre de archivo de texto] .txt del siguiente código:

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"); } } } 

Intenté poner DateTime.Now.ToString() pero no puedo combinar las cadenas.

Alguien puede ayudarme? Quiero la fecha en FRENTE del título del nuevo archivo de texto que estoy creando.

 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"); } } 

Llamar:

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

Tenga en cuenta algunas cosas:

  • Especifique la fecha con una cadena de formato personalizado y evite usar caracteres ilegales en NTFS.
  • Prefile cadenas que contengan rutas con el marcador literal ‘@’, para que no tenga que escapar de las barras invertidas en la ruta.
  • Combine las partes de la ruta con Path.Combine (), y evite el uso de los separadores de ruta.
  • Utilice un bloque de uso al crear el StreamWriter; al salir del bloque, se eliminará StreamWriter y se cerrará el archivo automáticamente.

Desearía hacer un formato de cadena personalizado en DateTime.Now. Puede usar String.Format () para combinar los resultados de eso con su nombre de archivo base.

Para agregar en la ruta al nombre de archivo, use Path.Combine ().

Finalmente, use un bloque using () para cerrar y disponer adecuadamente su StreamWriter cuando haya terminado con él …

 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"); 

Edición: muestra fija a la cuenta de la ruta de “C: \ Documents and Settings \ bob.jones \ Desktop”

Prueba esto:

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

?

Para responder la pregunta en su comentario sobre la respuesta de @Scott Ivey : para especificar dónde se escribe el archivo, anteponga la ruta deseada al nombre del archivo antes o en la llamada a CreateText ().

Por ejemplo:

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

o

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