Voglio ottenere l'elenco dei dischi rimovibili in C#. Voglio saltare le unità locali. Perché voglio che l'utente salvi il file solo nel disco rimovibile.Come ottenere l'elenco dei dischi rimovibili in C#?
risposta
Sarà necessario fare riferimento a System.IO
per questo metodo.
var driveList = DriveInfo.GetDrives();
foreach (DriveInfo drive in driveList)
{
if (drive .DriveType == DriveType.Removable)
{
//Add to RemovableDrive list or whatever activity you want
}
}
O per i tifosi LINQ:
var driveList = DriveInfo.GetDrives().Where(d => d.DriveType == DriveType.Removable);
Aggiunto
quanto riguarda la parte di risparmio, per quanto ne so non credo che è possibile limitare in cui l'utente può salvare l'utilizzo di un parametro SaveFileDialog, ma è possibile completare un controllo dopo aver visualizzato SaveFileDialog.
if(saveFileDialog.ShowDialog() == DialogResult.OK)
{
if (CheckFilePathIsOfRemovableDisk(saveFileDialog.FileName) == true)
{
//carry on with save
}
else
{
MessageBox.Show("Must save to Removable Disk, location was not valid");
}
}
O
L'opzione migliore sarebbe quella di creare il proprio finestra di dialogo Salva, che contiene una vista ad albero, che mostra solo le unità rimovibili e il loro contenuto per l'utente di salvare! Consiglierei questa opzione.
Spero che questo aiuti
Questo articolo esamina fare il trucco:
http://zayko.net/post/How-to-get-list-of-removable-drives-installed-on-a-computer-(C).aspx
H Rhys, Sono nuovo di iLists. Come eseguire il codice nel link che hai dato, in ordine per mostrare all'utente la finestra di dialogo con le unità rimovibili? Per favore aiuto. Urgente. – Anuya
Il codice di esempio su quel collegamento restituisce semplicemente un elenco delle unità rimovibili. Per usarlo in una finestra di dialogo, probabilmente dovrai creare una finestra di dialogo personalizzata come suggerito da @ThePower. –
Il link in questo post è morto. Cosa dovremmo fare con la risposta? Tutta la risposta è, è un collegamento a una risorsa che oggi (25-10-17) non esiste più. – Jura25
ne dite:
var removableDrives = from d in System.IO.DriveInfo.GetDrives()
where d.DriveType == DriveType.Removable;
O anche:var removableDrives = DriveInfo.GetDrives(). Where (d => d.DriveType == DriveType.Removable); –
È inoltre possibile utilizzare WMI per ottenere l'elenco delle unità rimovibili.
ManagementObjectCollection drives = new ManagementObjectSearcher (
"SELECT Caption, DeviceID FROM Win32_DiskDrive WHERE InterfaceType='USB'"
).Get();
cura sulla base di commento:
Dopo aver ottenuto l'elenco delle unità arrivarci GUID e aggiungerli alla raccolta SaveFileDialogInstance.CustomPlaces.
Il seguente codice ha bisogno di qualche ritocco ...
System.Windows.Forms.SaveFileDialog dls = new System.Windows.Forms.SaveFileDialog();
dls.CustomPlaces.Clear();
dls.CustomPlaces.Add(AddGuidOfTheExternalDriveOneByOne);
....
....
dls.ShowDialog();
Cosa succede se è SD piuttosto che USB? O sarà adatto a questo? – ThePower
- 1. Delphi - Come ottenere l'elenco dei dischi rigidi e delle chiavette USB rimovibili?
- 2. ottenere l'elenco unità a supporti rimovibili in C#
- 3. Prendere dischi online/offline
- 4. OpenCV: rilevamento circolare macchie/dischi Domino
- 5. Postgres che distribuisce dati su più dischi
- 6. Come ottenere l'elenco dei moduli nel progetto VS2008 C#?
- 7. Come ottenere valore dei parametri in stacktrace
- 8. Come ottenere l'elenco dei director in NSDocumentDirectory?
- 9. Come ottenere l'elenco dei ricevitori in MFMailComposeViewController
- 10. Come ottenere una media in C++?
- 11. Quali raccolte Java standard sono rimovibili durante l'iterazione?
- 12. come ottenere l'elenco dei processi
- 13. Gestione dei segnali in C
- 14. Come ottenere la directory dei video utente?
- 15. Risoluzione dei typedef in C e C++
- 16. Come ottenere il nome utente in C/C++ in Linux?
- 17. Ottieni l'elenco dei nomi dei negozi di certificati in C#
- 18. Come ottenere char ** usando C#?
- 19. Qt C++: spostamento di un file, percorsi di origine e destinazione su diversi dischi
- 20. Stringhe in C, come ottenere sottoStringa
- 21. Come ottenere DPI di immagine in C#
- 22. In C, come ottenere una directory specificata?
- 23. Come ottenere un elenco secondario in C#
- 24. Come ottenere il PID figlio in C?
- 25. come posso ottenere l'ora corrente in C#?
- 26. Come posso ottenere l'epoca in C#?
- 27. Come ottenere l'indirizzo IPv6 in C#?
- 28. Come ottenere l'ID del chiamante in C#?
- 29. Come ottenere precise DateTime in C#
- 30. Come caricare una libreria dei tipi per analizzarla in C#?
Hi ThePower, Desidero mostrare all'utente le unità rimovibili disponibili come una finestra di dialogo per salvare un file. Per favore aiuto. – Anuya
@karthik Penso che dovrai creare la tua finestra di dialogo di salvataggio personalizzata, che mostrerà solo le directory che hai ottenuto dall'elenco delle unità.Potresti provare a impostare saveFileDialog.InitialDirectory come una delle unità rimovibili, ma l'utente sarà comunque in grado di tornare al disco rigido, ecc. Se hai il tempo di creare la tua finestra di dialogo, questa è l'opzione migliore , usando un TreeView per mostrare i RemovableDrive e il loro contenuto, ma questo richiederà più tempo di quanto ci si aspetti per ottenere questa soluzione. – ThePower
C'è un errore nella query linq, dovrebbe essere "Rimovibile" invece di "Rimovibile" – Lonefish