Mam obowiązek przetestować niektóre problemy z ładowaniem w odniesieniu do rozmiaru pliku. Mam aplikację Windows napisaną w C #, która automatycznie generuje pliki. Znam rozmiar każdego pliku, np. 100 KB i ile plików do wygenerowania. Potrzebuję pomocy w tym, jak wygenerować ciąg mniejszy lub równy wymaganemu rozmiarowi pliku.
pseudo kod:
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
źródło
źródło
Odpowiedzi:
Zawsze możesz użyć konstruktora a dla ciągu, który przyjmuje
char
ai kilka razy, aby powtórzyć ten znak:Daje ci to ciąg 5000 gwiazdek - dostosuj do swoich potrzeb.
źródło
Najłatwiejszym sposobem będzie następujący kod:
Teraz masz ciąg zawierający tyle liter A, ile potrzeba.
Aby wypełnić go Lorem Ipsum lub innym powtarzającym się ciągiem, zbuduj coś podobnego do następującego pseudokodu:
Edycja: jeśli zapisujesz w Unicode, może być konieczne zmniejszenie o połowę rozmiaru pliku, ponieważ Unicode wykorzystuje dwa bajty na znak, jeśli dobrze pamiętam.
źródło
Istnieje wiele odmian tego, jak możesz to zrobić. Jednym z nich byłoby wypełnienie pliku kilkoma znakami. Potrzebujesz 100 KB? Żaden problem. 100 * 1024 * 8 = 819200 bitów. Pojedynczy znak ma 16 bitów. 819200/16 = 51200. Musisz wstawić do pliku 51 200 znaków. Ale weź pod uwagę, że plik może mieć dodatkowe nagłówki / metadane, więc może być konieczne uwzględnienie tego i zmniejszenie liczby znaków do zapisania w pliku.
źródło
Jako częściową odpowiedź na twoje pytanie niedawno stworzyłem przenośną aplikację WPF, która z łatwością tworzy `` niepotrzebne '' pliki prawie dowolnego rozmiaru: https://github.com/webmooch/FileCreator
źródło