2014-06-17 3 views
-1

파일을 정렬하는 데 약간의 문제가 있습니다.크기별 파일 정렬 C#

내 프로그램에서는 크기 및 날짜별로 디렉토리 파일을 정렬 할 수 있어야합니다. 날짜가 잘 작동하지만 크기별로 정렬하려고하면 오류가 반환됩니다.

이 내 관련 코드입니다 :

if (orden.Equals("tam")) 
{ 
    ficheroo = dirInfoo.GetFiles(filtro, SearchOption.AllDirectories).OrderBy(f => new FileInfo(f).Length).ToList(); 
} 

오류가 new FileInfo(f).Length의 사용과 오류는 다음과 같습니다

라 mejor coincidencia 드 método sobrecargado 파라 'System.IO.FileInfo. 에서는 FileInfo이가 변환없이 válidos

argumentos algunos (문자열) 'tiene :

,

는 'System.IO.FileInfo.FileInfo (문자열)'에 가장 적합한 오버로드 된 메서드는

+0

오류 메시지를 번역 할 수 있습니까? – Watsche

+0

영어 오류는 무엇입니까? FileInfo에 잘못된 인수가 있습니까? – Sayse

+0

@Sayse Yup - 잘못된 인수. –

답변

6

DirectoryInfo.GetFiles 이미 FileInfo[] 반환 일부 잘못된 인수가 - 그래서 당신은에 각 항목을 변환 할 필요가 없습니다 a FileInfo 생성자를 사용하십시오. 당신은 사용할 수 있습니다

ficheroo = dirInfoo.GetFiles(filtro, SearchOption.AllDirectories) 
        .OrderBy(f => f.Length) 
        .ToList(); 

1

GetFiles 이미 FileInfo을 반환합니다. (수직 공간을 사용하면 하나의 거대한 줄에 모든 것을하는 것보다 코드를 읽기 쉽게 만드는 방법 보조 노트로서, 그것은 보는 가치), I 용의자입니다.

dirInfoo.GetFiles(filtro, SearchOption.AllDirectories) 
        .OrderBy(f => f.Length).ToList(); 
0

GetFiles가 이미 FileInfo 배열을 반환하기 때문에 컴파일 오류가 발생합니다. 따라서 OrderBy 절에 새 FileInfos를 만들 필요가 없습니다.

ficheroo = dirInfoo.GetFiles(filtro, SearchOption.AllDirectories).OrderBy(f => f.Length).ToList();