Con la siguiente función basada en el manejo de LINQ, obtengo los archivos cuyo nombre de archivo sea numérico, y devuelvo una representación del archivo (type FileInfo) que tenga el número más grande.
( quizás quieras añadirle algún control de errores )
Despues, para crear un archivo incrementando el número del nombre del archivo que obtuvimos con la función de arriba, puedes hacerlo de la siguiente manera:
Ahí también te mostré como utilizar el stream para escribir una linea de texto.
Saludos!
Código (csharp) [Seleccionar]
using System.IO
Código (csharp) [Seleccionar]
public static FileInfo GetFileWithBiggestNumberInFilename(string dirpath, string ext) {
IEnumerable<FileInfo> files =
from filepath in Directory.GetFiles(dirpath, string.Format("*{0}", ext), SearchOption.TopDirectoryOnly)
select new FileInfo(filepath);
int result = 0;
return (from file in files
where int.TryParse(Path.GetFileNameWithoutExtension(file.Name), out result)
orderby Convert.ToInt32(Path.GetFileNameWithoutExtension(file.Name)) descending
select file).FirstOrDefault();
}
( quizás quieras añadirle algún control de errores )
Despues, para crear un archivo incrementando el número del nombre del archivo que obtuvimos con la función de arriba, puedes hacerlo de la siguiente manera:
Código (csharp) [Seleccionar]
FileInfo file = GetFileWithBiggestNumberInFilename("C:\\", ".txt");
int number = Convert.ToInt32(Path.GetFileNameWithoutExtension(file.Name));
int newNumber = (number + 1);
string newFilepath = Path.Combine(file.DirectoryName, string.Format("{0}{1}", newNumber, file.Extension));
using (StreamWriter sw = new StreamWriter(newFilepath, false, Encoding.Default)) {
sw.WriteLine("Hello World!");
}
Ahí también te mostré como utilizar el stream para escribir una linea de texto.
Saludos!