이 기사에서는 폴더 크기를 추정하는 C# 프로그램에 대해 알아봅니다. 컴퓨터에서는 폴더라는 디렉터리에 파일을 저장합니다. 또한 파일에 있는 폴더의 크기를 추정하는 방법도 살펴보겠습니다. 파일 크기를 계산하는 것만으로는 목표를 달성하기에 충분하지 않습니다. 대신 폴더와 하위 폴더의 크기도 계산해야 합니다.
다음 글에서는 폴더 크기를 계산하는 방법을 세 부분으로 나누어 설명합니다. 우리가 알아야 할 첫 번째 부분은 폴더의 크기를 알려주는 GetFolderSize 메서드입니다. 두 번째 부분은 크기를 사람이 읽을 수 있는 형식으로 변환하는 FormatBytes 메서드입니다. 또한 이 기사의 추가 개발에 중요한 다양한 접근 방식을 간략하게 살펴보겠습니다.
폴더 크기를 계산하기 위해 코드에서 사용할 다섯 가지 방법을 알아봅니다.
DirectoryInfo(dir_path) - 이 메서드는 디렉터리 경로를 입력 매개 변수로 사용하고 해당 정보(예: 파일, 하위 폴더, 하위 디렉터리에 대한 정보)를 반환합니다.
GetFiles() − 단일 디렉터리에 있는 모든 파일의 이름을 반환합니다.
Length− 파일 크기를 바이트 단위로 반환합니다.
GetDirectories() − 이 메서드는 단일 파일에 대한 모든 폴더, 하위 폴더 및 하위 디렉터리를 반환하므로 우리 코드에서 가장 잘 작동합니다.
코드에서 직접 사용되는 이러한 방법 외에도 출력 콘솔을 고려한 또 다른 중요한 방법이 있습니다.
FormatBytes() − 길이 메소드로 구한 크기는 바이트 단위로 사람이 읽을 수 있는 형식이 아니므로 올바른 문자열 형식으로 변환하려면 FormatBytes 메소드를 사용하여 변환해야 합니다. . 이 메서드는 바이트를 입력으로 사용하고 필요에 따라 MB 또는 KB로 변환한 다음 소수점 이하 두 자리로 반올림하여 문자열로 변환합니다.
또한 DirectoryInfo 클래스의 작동 방식과 코드에서의 사용 방법도 살펴보겠습니다.
파일이나 디렉터리에 대해 다양한 작업을 수행할 수 있습니다. 이 클래스를 사용하여 파일을 생성, 이동 및 삭제할 수 있습니다. System.Io 네임스페이스 아래에 있습니다. 파일 작업 방법도 제공합니다.
1단계 −먼저 모든 파일을 한 곳에 모아야 합니다. 여기서는 모든 파일을 all files 변수에 저장합니다.
2단계 − 이제 루프를 반복하고 Length 메소드를 통해 각 파일의 길이를 계산하여 모든 파일로 이동합니다.
3단계 − 이제 파일에 있는 하위 디렉터리, 하위 폴더 및 폴더가 남아 있지 않은지 확인해야 합니다.
4단계 −각 파일로 재귀적으로 이동하여 하위 디렉터리, 하위 폴더 또는 폴더가 포함되어 있는지 확인합니다.
5단계−이제 파일에 있는 각 파일의 길이를 계산하여 전체 폴더 크기 변수에 저장합니다.
6단계 − 이제 최종 답변을 사람이 읽을 수 있는 형식으로 변환하고 바이트 크기에서 문자열 형식으로 변환하려면 바이트 형식 방법을 사용해야 합니다.
7단계 −마지막으로 콘솔 기능을 사용하여 답을 인쇄할 수 있습니다.
위에 제공된 코드에서 우리가 반복하는 유일한 루프는 재귀 루프라는 것을 알 수 있습니다. 이 재귀 루프에서는 모든 하위 폴더, 파일, 디렉터리, 하위 디렉터리 및 폴더에 도달할 때까지 반복하는 것을 볼 수 있습니다. 따라서 시간 복잡도는 O(파일 크기)입니다. 이 외에도 다른 모든 방법에서는 일정한 시간 복잡도만 사용됩니다. 이는 Big-O 표기법에서 O(1)의 시간 복잡도를 구성합니다. 따라서 최종 시간 복잡도는 폴더의 전체 크기입니다.
이 기사에서는 폴더 크기를 계산하는 방법을 광범위하게 논의했습니다. 코드에 사용되는 다양한 메서드와 클래스에 대해 알아봅니다. 또한 파일 크기만 세는 것만으로는 결론을 내릴 수 없다는 점도 배웠습니다. 또한 모든 폴더, 디렉터리, 하위 디렉터리 및 하위 폴더의 크기를 계산해야 합니다. 또한 코드의 알고리즘, 코드 자체, 시간 복잡도에 대해서도 배웠습니다. 이 기사가 C#에 대한 지식을 향상하는 데 도움이 되기를 바랍니다.
위 내용은 C# 프로그램은 폴더 크기를 예측합니다.의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!