Domanda

Sto realizzando un software che deve SOLO consentire alle persone di selezionare file e cartelle usando OpenFileDialog che si trovano nella stessa directory del programma e che si trovano in cartelle più profonde. Non voglio che OpenFileDialog sia in grado di selezionare elementi al di fuori della directory corrente del programma. È possibile farlo in C # usando OpenFileDialog?

Per favore fatemi sapere

Grazie

È stato utile?

Soluzione

puoi verificare se il percorso è corretto dopo aver selezionato

se è solo accetta o invia la finestra di messaggio digli che selezioni un'altra directory

Altri suggerimenti

Non vedo alcun supporto immediato dal controllo OpenFileDialog. Tuttavia, puoi provare quanto segue,

Imposta la proprietà InitialDirectory sul percorso del tuo programma. Quindi se un utente seleziona un percorso particolare al di fuori del percorso del programma, utilizzare l'evento FileOk per verificarlo e riportarlo alla InitialDirectory.

Se vuoi un maggiore controllo, dovrai scrivere la tua finestra di dialogo personalizzata.

Ecco come l'ho fatto.

   openFileDialog1.InitialDirectory = Path.Combine(Path.GetDirectoryName(Application.StartupPath), "FolderName");

        if (openFileDialog1.ShowDialog() == DialogResult.OK)
        {            
                while(Path.GetDirectoryName(openFileDialog1.FileName) != Path.Combine(Path.GetDirectoryName(Application.StartupPath), "FolderName")){

                    MessageBox.Show("Please select .EXE which is in the default folder", "Wrong folder", MessageBoxButtons.OK, MessageBoxIcon.Information);
                openFileDialog1.ShowDialog();

            }                       
        }

Temo che non puoi. La maggior parte delle persone ha creato una propria finestra di dialogo personalizzata per questo scenario.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top