2016-04-04 8 views
-5

Wie kann ich die Eigenschaft System.IO.FileInfo.Length zuweisen?Eigenschaft oder Indexer 'System.IO.FileInfo.Length' kann nicht zugewiesen werden - es ist schreibgeschützt

FileInfo.Length Property

Es ist nur lesen!

+2

Warum brauchen Sie? Die 'FileInfo'-Klasse existiert zum Zwecke des _Gebens von Dateiinformationen_, ohne sie zu manipulieren. - Die Antwort ist: Sie können nicht. Sie müssten dafür Ihre eigene Klasse erstellen. –

+0

Wie kann ich diese Klasse schreiben? – MoonLight

+1

['FileStream.SetLength'] (https://msdn.microsoft.com/library/system.io.filestream.setlength.aspx) – PetSerAl

Antwort

5

FileInfo.Length verwendet wird, um die Größe einer Datei zu erhalten, ist der einzige Weg, um Inhalte einer Dateigröße ist es

durch Modifikation ändern
+9

@MoonLight: Aber er hat Recht. Jetzt bist du einfach undankbar. Es ist schreibgeschützt. Du kannst es nicht ändern. Zeitraum. Und ich würde immer noch gerne wissen, warum du das tun musst. –

+1

@MoonLight - Ich verstehe nicht - was wäre der Zweck der Entfernung der Antwort zu "lassen Sie andere Leute antworten"? Es macht keinen Sinn zu tun, besonders wenn es korrekt ist – Krease

1

Wenn Sie programmatisch würden Sie schreiben müssen, etwas zu einer Datei Größe festlegen möchten es. Der einfachste Weg wäre wahrscheinlich, es nur mit Nullen zu füllen.

public void writeEmptyFile(string path, int size) 
{ 
    using(FileStream fs = new FileStream(path, System.IO.FileMode.Append, System.IO.FileAccess.ReadWrite)) 
    { 
     fs.Write(new byte[size], 0, size); 
    } 
} 

Dieses Verfahren wird entweder A) schreiben, eine neue Datei mit Null-Bytes enthält (die Datei die angegebene Größe) haben oder B) wenn die Datei es path existiert bereits die angegebene Menge append von Null-Bytes zu dieser Datei, erhöht seine Größe.

Verwandte Themen