파일 크기와 관련하여 몇 가지로드 문제를 테스트해야합니다. 파일을 자동으로 생성하는 C #으로 작성된 Windows 응용 프로그램이 있습니다. 각 파일의 크기를 알고 있습니다. 100KB 및 생성 할 파일 수. 내가 도움이 필요한 것은 필요한 파일 크기보다 작거나 같은 문자열을 생성하는 방법입니다.
의사 코드 :
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)) {
}
}
답변
a char
및 해당 문자를 반복하려는 횟수 를 취하는 문자열에 대해 항상 a 생성자를 사용할 수 있습니다 .
string myString = new string('*', 5000);
이것은 당신에게 5000 개의 별을 제공합니다-당신의 필요에 따라 조정하십시오.
답변
가장 쉬운 방법은 다음 코드입니다.
var content = new string('A', fileSizeInKB);
이제 필요한만큼의 A가있는 문자열이 있습니다.
Lorem Ipsum 또는 다른 반복 문자열로 채우려면 다음 의사 코드와 같은 것을 작성하십시오.
string contentString = "Lorem Ipsum...";
for (int i = 0; i < fileSizeInKB / contentString.Length; i++)
//write contentString to file
if (fileSizeInKB % contentString.Length > 0)
// write remaining substring of contentString to file
편집 : 유니 코드로 저장하는 경우 올바르게 기억하면 유니 코드가 문자 당 2 바이트를 사용하기 때문에 파일 크기의 절반이 필요할 수 있습니다.
답변
이를 수행하는 방법에는 많은 변형이 있습니다. 하나는 파일을 여러 문자로 채우는 것입니다. 100KB가 필요하십니까? 문제 없습니다. 100 * 1024 * 8 = 819200 비트. 단일 문자는 16 비트입니다. 819200/16 = 51200. 파일에 51,200 개의 문자를 붙여야합니다. 그러나 파일에 추가 헤더 / 메타 데이터가있을 수 있으므로이를 고려하고 파일에 쓸 문자 수를 줄여야 할 수 있습니다.
답변
귀하의 질문에 대한 부분적인 답변으로 저는 최근 거의 모든 크기의 ‘정크’파일을 쉽게 생성하는 휴대용 WPF 앱을 만들었습니다. https://github.com/webmooch/FileCreator