Ich muss einige Ladeprobleme in Bezug auf die Dateigröße testen. Ich habe eine Windows-Anwendung in C # geschrieben, die die Dateien automatisch generiert. Ich kenne die Größe jeder Datei, z. 100 KB und wie viele Dateien generiert werden sollen. Ich brauche Hilfe beim Generieren einer Zeichenfolge, die kleiner oder gleich der erforderlichen Dateigröße ist.
Pseudocode:
long fileSizeInKB = (1024 * 100); //100KB
int numberOfFiles = 5;
for(var i = 0; i < numberOfFiles - 1; i++) {
var dataSize = fileSizeInKB;
var buffer = new byte[dataSize];
using (var fs = new FileStream(File, FileMode.Create, FileAccess.Write)) {
}
}
c#
string
.net
operations
VajNyiaj
quelle
quelle
Antworten:
Sie können immer den Konstruktor a für einen String verwenden, der ein
char
und mehrere Male dauert, bis das Zeichen wiederholt wird:Dies gibt Ihnen eine Reihe von 5000 Sternen - optimieren Sie Ihre Bedürfnisse.
quelle
Der einfachste Weg wäre der folgende Code:
Jetzt haben Sie eine Zeichenfolge mit so vielen A wie erforderlich.
Um es mit Lorem Ipsum oder einem anderen sich wiederholenden String zu füllen, erstellen Sie so etwas wie den folgenden Pseudocode:
Bearbeiten: Wenn Sie in Unicode speichern, müssen Sie möglicherweise die Hälfte der Dateigröße zählen, da Unicode zwei Bytes pro Zeichen verwendet, wenn ich mich richtig erinnere.
quelle
Es gibt so viele Variationen, wie Sie dies tun können. Eine wäre, die Datei mit ein paar Zeichen zu füllen. Sie benötigen 100 KB? Kein Problem. 100 * 1024 * 8 = 819200 Bit. Ein einzelnes Zeichen besteht aus 16 Bit. 819200/16 = 51200. Sie müssen 51.200 Zeichen in eine Datei einfügen. Beachten Sie jedoch, dass eine Datei möglicherweise zusätzliche Header- / Metadaten enthält. Daher müssen Sie dies möglicherweise berücksichtigen und die Anzahl der Zeichen verringern, die in die Datei geschrieben werden sollen.
quelle
Als Teilantwort auf Ihre Frage habe ich kürzlich eine tragbare WPF-App erstellt, mit der Sie problemlos Junk-Dateien fast jeder Größe erstellen können: https://github.com/webmooch/FileCreator
quelle