C #에서 파일 크기를 어떻게 얻습니까?


307

디스크 크기가 아닌 C #을 사용하여 파일 크기를 얻는 방법이 필요합니다. 이것이 어떻게 가능한지?

현재이 루프가 있습니다

foreach (FileInfo file in downloadedMessageInfo.GetFiles())
{
    //file.Length (will this work)
}

디스크의 크기 또는 크기를 반환합니까?


:하지만, VB.NET에 대한 관련 VB.NET에서 파일 크기를 결정 ,
피터 모텐슨

답변:



386

입력으로 파일 경로가 이미있는 경우 필요한 코드입니다.

long length = new System.IO.FileInfo(path).Length;

1
try / catch 블록으로 둘러싸고 여기에 설명 된대로 가능한 모든 예외를 확인 하십시오 . SecurityException, UnauthorizedAccessException, PathTooLongException, NotSupportedException-사용 사례에 따라 다름
-ArgumentNullException

37

FileInfo.Length트릭을 수행합니다 (MSDN에서는 "현재 파일의 크기를 바이트 단위로 설정합니다.") 일반적인 I / O 작업에 대한 MSDN 에는 멋진 페이지 가 있습니다 .




4

파일을 다른 파일 시스템 (FAT16, NTFS, EXT3 등)으로 이동하면 디스크 크기가 다를 수 있습니다.

다른 응답자가 말했듯이 디스크 크기가 아닌 바이트 크기를 제공합니다.


0

FileInfo 클래스의 Length 속성은 파일 크기 (디스크의 크기가 아님)를 반환합니다. 긴 바이트 값 대신 형식이 지정된 파일 크기 (예 : 15KB)를 원한다면 CSInfopLib 를 사용할 수 있습니다 .이 패키지는 FileInfo 클래스에 더 많은 기능을 추가합니다. 예를 들면 다음과 같습니다.

using CSharpLib;
FileInfo info = new FileInfo("sample.txt");
Console.WriteLine(info.FormatBytes());  // Output: 15 MB
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.