programing

파일 크기 기준을 충족하기 위해 파일에 삽입할 특정 길이의 문자열을 생성하는 방법?

goodsources 2023. 10. 18. 22:03
반응형

파일 크기 기준을 충족하기 위해 파일에 삽입할 특정 길이의 문자열을 생성하는 방법?

파일 크기와 관련하여 몇 가지 로드 문제를 테스트해야 할 필요가 있습니다.자동으로 파일을 생성해주는 C#로 작성된 윈도우 어플리케이션이 있습니다.각 파일의 크기, 예를 들어 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)) {

     }
}

다음을 수행하는 문자열에 대해 항상 생성자를 사용할 수 있습니다.char그 캐릭터를 반복하기를 원하는 횟수는 다음과 같습니다.

string myString = new string('*', 5000);

이것은 5,000개의 별들을 제공합니다. 필요에 따라 조정합니다.

가장 쉬운 방법은 다음 코드를 따르는 것입니다.

var content = new string('A', fileSizeInKB);

이제 필요한 만큼의 A가 포함된 문자열을 확보했습니다.

로렘 입섬이나 다른 반복 문자열로 채우려면 다음과 같은 의사 코드를 작성합니다.

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자를 파일에 꽂아야 합니다.그러나 파일에 추가 헤더/메타 데이터가 있을 수 있으므로 이를 고려하여 파일에 쓸 문자 수를 줄여야 할 수도 있습니다.

귀하의 질문에 대한 부분적인 답변으로 저는 최근 거의 모든 크기의 'junk' 파일을 쉽게 만들 수 있는 휴대용 WPF 앱을 만들었습니다. https://github.com/webmooch/FileCreator

언급URL : https://stackoverflow.com/questions/5032041/how-to-generate-string-of-a-certain-length-to-insert-into-a-file-to-meet-a-file

반응형