다음 코드를 사용하여 파일의 일부를 삭제했습니다. 메소드의 매개 변수는 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