private void InsertString(string fileName, string line, long position) {
FileInfo info = new FileInfo(fileName);
using (FileStream stream = info.Open(FileMode.OpenOrCreate, FileAccess.ReadWrite, FileShare.None)) {
if (position < 0)
position = 0;
if (position > info.Length)
position = info.Length;
// сохраняем старые данные
stream.Seek(position, SeekOrigin.Begin);
long tailLength = info.Length - position;
byte[] tailData = new byte[tailLength];
stream.Read(tailData, 0, (int)tailLength);
// записываем новые
stream.Seek(position, SeekOrigin.Begin);
StreamWriter writer = new StreamWriter(stream);
writer.Write(line);
writer.Flush();
// записываем хвост
stream.Write(tailData, 0, tailData.Length);
stream.Flush();
}
}
C# & Files
StreamWriter write = new StreamWriter(filewrite);
filewrite.Seek(3,SeekOrigin.Begin);
write.Write("Barev");
write.Flush();
write.Close();
В этом случе если файле написанно скажем Artak, то после завершение программи в файле записивается ArtBarev, а мне нужно ArtBarevak.
С помощю чего можно это сделать.
Цитата: artak
FileStream filewrite = new FileStream("New.txt",FileMode.OpenOrCreate,FileAccess.ReadWrite);
StreamWriter write = new StreamWriter(filewrite);
filewrite.Seek(3,SeekOrigin.Begin);
write.Write("Barev");
write.Flush();
write.Close();
В этом случе если файле написанно скажем Artak, то после завершение программи в файле записивается ArtBarev, а мне нужно ArtBarevak.
С помощю чего можно это сделать.
StreamWriter write = new StreamWriter(filewrite);
filewrite.Seek(3,SeekOrigin.Begin);
write.Write("Barev");
write.Flush();
write.Close();
В этом случе если файле написанно скажем Artak, то после завершение программи в файле записивается ArtBarev, а мне нужно ArtBarevak.
С помощю чего можно это сделать.
Так вместо write.Write("Barev"); напиши вот так:write.Write("Barevak");;)
И да прибудет стобой сила!
Каков критерий разбивания старого содержимого файла?
hardcase мне нужно сделать скажем UPDATE файла,но так что старие символы не повредились.
Цитата: artak
hardcase мне нужно сделать скажем UPDATE файла,но так что старие символы не повредились.
Я так понял что нужно вставить данные в середину файла таким образом, чтобы хвост файла "сдвинулся".
Вот код:
Код:
hardcase спасибо за ответ все получилось.