How can I clear the content of a file?

后端 未结 6 1745
慢半拍i
慢半拍i 2020-12-02 21:48

I need to clear the contents of a particular file every time the applications starts. How do I do it?

相关标签:
6条回答
  • 2020-12-02 22:31

    You can use the File.WriteAllText method.

    System.IO.File.WriteAllText(@"Path/foo.bar",string.Empty);
    
    0 讨论(0)
  • 2020-12-02 22:32

    The easiest way is:

    File.WriteAllText(path, string.Empty)
    

    However, I recommend you use FileStream because the first solution can throw UnauthorizedAccessException

    using(FileStream fs = File.Open(path,FileMode.OpenOrCreate, FileAccess.ReadWrite))
    {
         lock(fs)
         {
              fs.SetLength(0);
         }
    }
    
    0 讨论(0)
  • 2020-12-02 22:36

    Use FileMode.Truncate everytime you create the file. Also place the File.Create inside a try catch.

    0 讨论(0)
  • 2020-12-02 22:39

    This is what I did to clear the contents of the file without creating a new file as I didn't want the file to display new time of creation even when the application just updated its contents.

    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.
    
    0 讨论(0)
  • 2020-12-02 22:44

    The simplest way to do this is perhaps deleting the file via your application and creating a new one with the same name... in even simpler way just make your application overwrite it with a new file.

    0 讨论(0)
  • 2020-12-02 22:44

    Try using something like

    File.Create

    Creates or overwrites a file in the specified path.

    0 讨论(0)
提交回复
热议问题