Question: For example, if I want to delete 10 bytes in the middle of file or add 10 bytes to the middle, are there anyway to do it without total file rewrite?

I'd like a solution that does this task the fastest.

I use C#, but the solution maybe be also in C or C++.

Answer: 
You have to copy the entire file, omitting or inserting the relevant bytes. This is an OS constraint; because of the way files are laid out on disk, it simply isn't possible to support this type of operation (at least with simple file systems like those used by Unix or Windows).
Try something that uses [MapViewOfFile](http://winapi.freetechsecrets.com/win32/WIN32MapViewOfFile.htm). There are probably C# bindings.

You can then treat the file like memory which should be fast.