webForumDet fria alternativet

Ändra längd av FileStream

.NET

2 svar · 256 visningar · startad av Han-Solo

Medlem sedan jan. 2001290 inlägg
Frågan#1

Hallå!

Dök på ett litet problem.

Jag ska ta bort ett ord i en fil. Detta skall jag göra utan att någon annan kan påverka det jag gör genom att skriva till ett ord tex under min operation. Därför har jag skapat ett FileStream object med 'System.IO.FileShare.None' m.m. i filströmen tar jag bort ordet och flyttar upp den text som finns nedanför. På det viset ser filen skaplig ut... dock finns en massa \0 längst bak i filen eftersom jag bara tagit bort texten inte ändrat storleken på filen.

Har någon tips på hur man kan gå till väga.

som sagt... viktigt att ingen annan kan förstöra!!!

Medlem sedan dec. 19996 721 inlägg
#2

Du bör lösa det genom att spara ut en ny fil under tiden du läser den gamla. Hoppa över att skriva det ord som inte ska vara med. Efter operationen ersätter du den gamla filen med den nya.

Medlem sedan jan. 2001290 inlägg
#3

emission skrev:

Du bör lösa det genom att spara ut en ny fil under tiden du läser den gamla. Hoppa över att skriva det ord som inte ska vara med. Efter operationen ersätter du den gamla filen med den nya.

mmm... jag löste det precis så... men från det att jag släpper låset på filen tills det att den nya filen lagts på plats kan ju... rent teoretiskt iaf... nått gå fel... men ah... jag blundar för det, just för tillfället, tror jag :)

260 ms totalt · 4 externa anrop · v20260731065814-full.6fe65c25
125 ms — deklarationer (db)
0 ms — hämta statistik (cache)
133 ms — hämta tråd, inlägg och bilagor (db)
122 ms — ändringar (db)