응용 프로그램이 시작될 때마다 특정 파일의 내용을 지워야합니다. 어떻게하나요?
답변
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);
}
}