[c#] 파일 내용을 어떻게 지울 수 있습니까?

응용 프로그램이 시작될 때마다 특정 파일의 내용을 지워야합니다. 어떻게하나요?



답변

File.WriteAllText 메서드를 사용할 수 있습니다 .

System.IO.File.WriteAllText(@"Path/foo.bar",string.Empty);


답변

응용 프로그램이 방금 내용을 업데이트 한 경우에도 파일이 새 생성 시간을 표시하지 않기를 원했기 때문에 새 파일만들지 않고 파일 내용지우 려고 한 것입니다.

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.


답변

FileMode.Truncate파일을 만들 때마다 사용하십시오 . 또한 File.Create내부에 try catch.


답변

이 작업을 수행하는 가장 간단한 방법은 아마도 응용 프로그램을 통해 파일을 삭제하고 동일한 이름으로 새 파일을 만드는 것입니다. 더 간단한 방법으로 응용 프로그램이 새 파일로 덮어 쓰도록 만들 수 있습니다.


답변

가장 쉬운 방법은 다음과 같습니다.

File.WriteAllText(path, string.Empty)

그러나 FileStream첫 번째 해결책은 던질 수 있기 때문에 사용하는 것이 좋습니다.UnauthorizedAccessException

using(FileStream fs = File.Open(path,FileMode.OpenOrCreate, FileAccess.ReadWrite))
{
     lock(fs)
     {
          fs.SetLength(0);
     }
}


답변

같은 것을 사용해보십시오

File.Create

지정된 경로에 파일을 만들거나 덮어 씁니다.


답변