如何从末尾截断文件X字节?

Ran*_*ray 1 c# file-io compact-framework truncate filestream

让我们说有一个150字节长的文件,我想截断它的最后16(或任何数字)...

除了重写完整的文件之外还有其他方法吗?

更新: SetLength应该做的事情,但遗憾的是抛出了NotSupportedException

using (FileStream fsFinalWrite = new FileStream(FileName, FileMode.Open, FileAccess.ReadWrite, FileShare.ReadWrite))
{

  fsFinalWrite.Seek(16, SeekOrigin.End);

  fsFinalWrite.Write(SwappedBytes, 0, 16);

  Debug.WriteLine("fsFinalWrite Can Seek = " + fsFinalWrite.CanSeek);
  Debug.WriteLine("fsFinalWrite Can Write = " + fsFinalWrite.CanWrite);

  fsFinalWrite.SetLength((long)lengthOfFile);

}
Run Code Online (Sandbox Code Playgroud)

两者都打印真实!但它仍会抛出NotSupportedException.任何人都知道如何处理这个?

Gar*_*ary 11

怎么样FileStream.SetLength()