У меня есть следующий код для удаления некоторых частей файла. Параметры метода: filePath и список местоположений вместе с длиной для удаления из каждого местоположения.Как удалить строки из файла в C#
Не могли бы вы проверить, что я делаю это правильно? Спасибо
ПРИМЕЧАНИЕ. Детали, подлежащие удалению, не будут перекрываться. Я еще не добавил проверку.
static void DeleteFileParts(string filePath, List<Tuple<int, int>> T)
{
using (var fileStream = File.Open(filePath, FileMode.Open, FileAccess.ReadWrite))
{
int tLen = 0;
int lastWriteL = 0;
int len = (int)fileStream.Length;
byte[] b1 = new byte[len];
for (int i = 0; i < T.Count; i++)
{
Tuple<int, int> t = T[i];
tLen += t.Item2;
fileStream.Seek(t.Item1 + t.Item2, 0);
int b1Len = i == T.Count - 1 ? (len - t.Item1 - t.Item2) : (T[i + 1].Item1 - t.Item1 - t.Item2);
fileStream.Read(b1, 0, b1Len);
fileStream.Seek(lastWriteL == 0 ? t.Item1 : lastWriteL, 0);
fileStream.Write(b1, 0, b1Len);
lastWriteL += t.Item1 + b1Len;
}
fileStream.SetLength(len - tLen);
}
}
Если это рабочий код, он, вероятно, будет более подходящим для SE – BradleyDotNET