Что-то вроде этого должно сработать, имейте в виду, хотя в него не встроена обработка ошибок, это просто базовые функции:
static void TrimFile(string filePath, byte[] badBytes)
{
using (FileStream file = new FileStream(filePath, FileMode.Open, FileAccess.ReadWrite))
{
byte[] bytes = new byte[badBytes.Length];
file.Seek(-badBytes.Length, SeekOrigin.End);
file.Read(bytes, 0, badBytes.Length);
if (Enumerable.SequenceEqual(bytes, badBytes))
{
file.SetLength(Math.Max(0, file.Length - badBytes.Length));
}
}
}
Вы можете назвать это так:
TrimFile(filePath, new byte[] { 0x0A, 0x00 });
Вот тестовый файл, который я создал с 0xCA 0xFE 0xFF 0xFF
в конце (некоторые данные бункера)
62 75 6E 6B 20 66 69 6C 65 CA FE FF FF
bunk fileÊþÿÿ
После запуска TrimFile(filePath, new byte[] { 0xCA, 0xFE, 0xFF, 0xFF });
62 75 6E 6B 20 66 69 6C 65
bunk file
Надеюсь, что этопригодится!