Necesito borrar el contenido de un archivo en particular cada vez que se inician las aplicaciones. ¿Cómo lo hago?
Respuestas:
Puede utilizar el método File.WriteAllText .
System.IO.File.WriteAllText(@"Path/foo.bar",string.Empty);
IO exceptions of file is in use
, por lo que le recomiendo que lo maneje manualmente a través del flujo de archivos
Esto 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.
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.
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);
}
}
File.WriteAllText
, parece que esto a veces (?) Elimina el archivo ya que los vínculos físicos no se mantienen actualizados.