2009-02-03 2 views
0

이름, 확장명, 크기 및 위치의 4 개 열로 된 목록보기가 있습니다. 파일 크기를 바이트로 취하고 필요에 따라 KB, MB, GB 등으로 변환하는 방법이 있습니다. 예제 출력은 "1KB"로 인쇄되는 1024 바이트 파일입니다. 이 값은 목록보기에 배치됩니다.파일 크기별로 목록보기를 정렬하는 방법은 무엇입니까?

크기 열을 지능적으로 정렬해야합니다. 현재 정렬은 단순한 비교 일 뿐이므로 1025KB는 1024MB보다 큽니다. "크기 인식"을 어떻게 만들 수 있습니까? http://support.microsoft.com/kb/319401 그리고 여기에 파일 크기의 텍스트를 생성 내 코드입니다 :

나의 현재 분류 ​​코드는이 기술 자료 문서에서입니다

 public static string getDynamicFileSize(string fileName) 
    { 
     FileInfo fi = new FileInfo(fileName); 
     long sizeInBytes = fi.Length; 
     if (sizeInBytes >= 1073741824) 
     { 
      double sizeInGB = sizeInBytes/Math.Pow(1024, 3); 
      return Math.Round(sizeInGB, 2) + " GB"; 
     } 

     if (sizeInBytes >= 1048576) 
     { 
      double sizeInMB = sizeInBytes/Math.Pow(1024, 2); 
      return Math.Round(sizeInMB, 2) + " MB"; 
     } 

     if (sizeInBytes >= 1024) 
     { 
      double sizeInKB = sizeInBytes/Math.Pow(1024,1); 
      return Math.Round(sizeInKB, 2) + " KB"; 
     } 

     //No conversion needed 
     return sizeInBytes + " bytes"; 
    } 

감사합니다.

답변

1

.NET의 대부분의 모든 개체에는 Tag 멤버가 있습니다. 이곳은 당신이 필요로하는 것을 더 채울 수있는 장소입니다. 귀하의 경우, 파일 크기를 바이트 단위로 ListViewSubItem.Tag 속성에 저장합니다. 그런 다음 정렬 알고리즘을 사용하여 열 텍스트 대신 정렬 할 수 있습니다.

+0

부탁드립니다. –

관련 문제