2014-09-03 2 views
0

나는 OpenFileDialog을 가지고 있으며 선택한 파일 이름을 FileInfo[] 변수로 변환하고 싶습니다.openFileDialog.FileNames를 FileInfo []로 변환하는 방법

그러나 선택한 파일을 한 줄 코드로 변환하는 방법을 모르겠습니다.

이것은 분명히 작동하지 않습니다

FileInfo[] files = openFileDialog.FileNames; 

감사합니다.

답변

1

사용 LINQ :

FileInfo[] files = openFileDialog.FileNames.Select(f => new FileInfo(f)).ToArray(); 
+0

'FileInfo [] files = (FileInfo []) openFileDialog.FileNames.Select (f => 새 FileInfo (f)); 고맙습니다. –

+0

@AlexJolig 아니요, 실패합니다. 대신 'ToArray' 메서드를 사용하십시오. –

1

FileInfo classconstructor that expects a filename을 제공합니다. 따라서, 하나의 파일 이름 string에 대한 FileInfo 인스턴스를 얻기 위해, 단순히 생성자 전화 : 귀하의 경우에는

FileInfo file = new FileInfo(openFileDialog.FileName); 

을, 당신은 배열을 얻으려면 여러 파일 이름 문자열을 따라서 당신은에서 LINQ 확장 방법을 사용할 수 있습니다 Enumerable class :

FileInfo[] files = openFileDialog.FileNames.Select(fn => new FileInfo(fn)).ToArray(); 

Select로 결국 ToArray에 추가 호출, IEnumerable<FileInfo>를 반환합니다.

관련 문제