Necesito borrar el contenido de un archivo en particular cada vez que se inician las aplicaciones. ¿Cómo lo hago?
80
Puede utilizar el método File.WriteAllText .
System.IO.File.WriteAllText(@"Path/foo.bar",string.Empty);
File.WriteAllText
, parece que esto a veces (?) Elimina el archivo ya que los vínculos físicos no se mantienen actualizados.IO exceptions of file is in use
, por lo que le recomiendo que lo maneje manualmente a través del flujo de archivosEsto es lo que hice para borrar el contenido del archivo sin crear un archivo nuevo, ya que no quería que el archivo mostrara una nueva hora de creación, incluso cuando la aplicación acaba de actualizar su contenido.
FileStream fileStream = File.Open(<path>, FileMode.Open); /* * Set the length of filestream to 0 and flush it to the physical file. * * Flushing the stream is important because this ensures that * the changes to the stream trickle down to the physical file. * */ fileStream.SetLength(0); fileStream.Close(); // This flushes the content, too.
fuente
Úselo
FileMode.Truncate
cada vez que cree el archivo. También coloque elFile.Create
interior atry
catch
.fuente
La forma más sencilla de hacer esto es quizás eliminar el archivo a través de su aplicación y crear uno nuevo con el mismo nombre ... de una manera aún más simple, simplemente haga que su aplicación lo sobrescriba con un nuevo archivo.
fuente
La forma más sencilla es:
File.WriteAllText(path, string.Empty)
Sin embargo, te recomiendo que uses
FileStream
porque la primera solución puede arrojarUnauthorizedAccessException
using(FileStream fs = File.Open(path,FileMode.OpenOrCreate, FileAccess.ReadWrite)) { lock(fs) { fs.SetLength(0); } }
fuente
Intenta usar algo como
Archivo.Crear
fuente