Håller på med ett prg som behöver ladda ner filer och för att inte fragmentera allt totalt vill jag skapa "tomma" (x antal 0) filer som jag sedan skriver i. Hej Thomas,Allokera filutrymme
såhär ser mina misslyckade försök ut:
using (FileStream fs = File.Create(file))
{
fs.SetLength(1024*1024);
fs.Flush();
}
using (FileStream fs = new FileStream(file, FileMode.Create, FileAccess.ReadWrite))
{
fs.SetLength(1024*1024);
fs.Flush();
}
nödlösningen är väl att göra en loop som skriver en byte[] om och om igen...
För att fortsätta en nedladdning på en fil som är skapad så här borde jag väl kunna söka bakifrån efter första (=sista) icke-nollade byten?
edit.
oj, kodblocket blev aldrig exekverat, nu får jag "This stream does not support seek operations." :(
edit.
råkade ha SetLength(dlStream.Length); måste anv Content-Length ist :P
Sv: Allokera filutrymme
Så här tror jag att du skulle kunna göra:
public static void AllocateSpaceForFile(string path, long sizeInBytes)
{
using (FileStream file = File.Create(path))
{
file.Seek(sizeInBytes - 1, SeekOrigin.Begin);
file.WriteByte(0);
}
}