2013-08-13 4 views
1

선택한 파일에 대한 정보를 얻고 이름 (예 : 이름 및 길이)을 ListBox에 나열하려하지만이를 수행하는 방법을 알 수 없습니다. 나는이 코드를 썼지 만 그것은 나의 기대를 충족시키지 못한다. DictionaryList으로 어떻게해야합니까?SelectedFile에 대한 정보를 표시하는 방법

private void button1_Click(object sender, EventArgs e) 
{ 
    FileInfo fi = null; 
    // Dictionary<string, int> info = new Dictionary<string, int>(); 
    openFileDialog1.Multiselect = true; 
    if (openFileDialog1.ShowDialog() == DialogResult.OK) 
    { 

     foreach (string file in openFileDialog1.FileNames) 
     { 
      listBox1.Items.Add(fi = new FileInfo(file)); 

     } 
    } 
} 
+1

있다 . – xanatos

답변

0

ListBox에 표시 할 FileInfo 클래스의 일부 멤버를 추출해보십시오.

listBox1.Items.Add(fi = new FileInfo(file)); 

사전을 사용으로

var info = new FileInfo(file); 
listBox1.Items.Add(String.Format("Filename: {0} Size: {1}", info.Name, info.Length)); 

에 변경, 당신은 어딘가에 사전을 정의 할 수 있습니다 :

foreach (string file in openFileDialog1.FileNames) 
{ 
    fileInfoDictionary[file] = new FileInfo(file); 
} 
:

Dictionary<string,FileInfo> fileInfoDictionary = new Dictionary<string,FileInfo>(); 

그런 다음에서는 FileInfo가 그것으로 개체를 추가

그리고 얼마 후 R 포인트는 (다시 파일 시스템에 외출하지 않고) 정보를 사용 : 그것은 존재한다면

Console.WriteLine(fileInfoDictionary[@"c:\autoexec.bat"].Length); 

선은 오른쪽 autoexec.bat의 파일 크기가 표시됩니다. 그렇지 않으면 해당 행은 KeyNotFoundException이됩니다. 당신이 아끼던 모든 파일 크기라면 자신의 게시물에 가지고있는 것처럼

또는, 당신은 당신의 사전을 선언 할 수 : 대충 참고할 수있을만큼 유명한`DictionaryList` 호출되지 아무것도

Dictionary<string,int> fileSizeDict = new Dictionary<string,int>(); 
// ... 
fileSizeDict[file] = new FileInfo(file).Length; 
// ... 
Console.WriteLine(String.Format("The length of autoexec.bat is {0}", fileSizeDict["@c:\autoexec.bat"])); 
+0

감사합니다 스티브 – user2583511

+0

괜찮습니다, 받아 들여줘서 고마워. 1k에 16 명의 담당자 만! ㅎ ... – Steve

관련 문제