2009-08-24 13 views
6

Come posso ottenere la dimensione del file attualmente selezionato nel mio Openfiledialog?Ottenere file da OpenFileDialog?

+4

Vuoi dire mentre il dialogo è aperto, o dopo il dialogo è stato chiuso? Intendi per il programma o per l'utente del programma? – Richard

+0

Ho la sensazione che qui occorrerà un po 'di interopzioni :-) Bella domanda anche se interessante, interessante –

+0

Per ulteriori chiarimenti, come da commento di Richard. –

risposta

6

Non è possibile ottenerlo direttamente da OpenFieldDialog.

è necessario prendere il percorso del file e consturct un nuovo oggetto FileInfo da esso in questo modo:

var fileInfo = new FileInfo(path); 

E dal fileinto è possibile ottenere la dimensione del file come questo

fileInfo.Length 

Per maggiori informazioni guarda questa pagina msdn.

1

penso che ci sia a 3 vie, creare la vostra finestra aperta personalizzato o l'impostazione per codice la vista come dettagli o chiede all'utente di utilizzare dettaglio vista

0

Se vuoi dire quando la finestra è in esecuzione, mi si sospetta che solo il cambiamento la vista del file per i dettagli. Tuttavia se intendi a livello di programmazione sospetto che dovrai agganciare un messaggio di Windows quando il file è selezionato.

1

Senza interruzioni e come il primo commento, una volta che il dialogo è stato completato, il/i file/i sono stati selezionati, questo darebbe la dimensione.

public Form1() 
     { 
      InitializeComponent(); 
     } 

     private void Form1_Load(object sender, EventArgs e) 
     { 
      if (openFileDialog1.ShowDialog() == DialogResult.OK) 
      { 
       if (openFileDialog1.Multiselect) 
       { 
        long total = 0; 
        foreach (string s in openFileDialog1.FileNames) 
         total += new FileInfo(s).Length; 
        MessageBox.Show(total.ToString()); 


       } 
       else 
       { 
        MessageBox.Show(new FileInfo(openFileDialog1.FileName).Length.ToString()); 
       } 


      } 
     } 

dimensione del file durante il dialogo mi sento avrebbe bisogno di utilizzare interoperabilità

Andrew

Problemi correlati