|
|||||||
|
|
|
![]() |
|
|
Strumenti |
|
|
#1 |
|
Member
Iscritto dal: Jul 2009
Messaggi: 268
|
[C#] Ricercare un file nel computer
Salve a tutti,
stò cercando di creare un applicazione in C# preferibilmente che permetta di ricercare un file di nome x nei dischi rigidi nel computer. Ho cercato su internet e ho trovato anche delle soluzioni abbastanza interessanti ma il fatto è che voglio riuscire a farla io, quindi con delle istruzioni che conosco. Qualcuno ha da propormi una soluzione? Grazie in anticipo |
|
|
|
|
|
#2 | |
|
Senior Member
Iscritto dal: Jun 2010
Città: Varese
Messaggi: 996
|
Quote:
|
|
|
|
|
|
|
#3 |
|
Member
Iscritto dal: Jul 2009
Messaggi: 268
|
Si, all' inizio era proprio quello che avevo pensato io.
Ma dopo mi sono accorto che è una cosa da matti In quanto avevo iniziato creandolo in modo tale da controllare tutti le unità di assegnazione dei dischi rigidi e appena ne trovava una esistente controllava se sulla cartella programmi (x86) c' era la cartella del programma che mi interessa. Mi spiego meglio: lui controllava se c' era il disco rigido 'a', se si controlla se all' interno della cartella Pogrammi(x86) c' era la cartella del programma interessato. Invece in caso negativo proseguiva il controllo con la lettera 'b' ... e così via fino alla 'z'. Naturalmente una volta trovato il programma terminava ritornardo vero. Ma a me sembra una soluzione alcuanto primitiva Ah se puoi spiegarmi in due parola cosa sono gli FS thanks |
|
|
|
|
|
#4 | |
|
Moderatore
Iscritto dal: Nov 2006
Messaggi: 22245
|
Quote:
__________________
"WS" (p280,cx750m,4790k+212evo,z97pro,4x8GB ddr3 1600c11,GTX760-DC2OC,MZ-7TE500, WD20EFRX) Desktop (three hundred,650gq,3800x+nh-u14s ,x570 arous elite,2x16GB ddr4 3200c16, rx5600xt pulse P5 1TB)+NB: Lenovo p53 i7-9750H,64GB DDR4,2x1TB SSD, T1000 |
|
|
|
|
|
|
#5 | |
|
Senior Member
Iscritto dal: Dec 2001
Città: Lecce
Messaggi: 3936
|
Quote:
Esistono una marea di esempi in rete, da qui puoi prendere spunto: http://support.microsoft.com/kb/303974 http://www.c-sharpcorner.com/UploadF...FilesinCS.aspx |
|
|
|
|
|
|
#6 |
|
Member
Iscritto dal: Jul 2009
Messaggi: 268
|
Ok dai vedrò di vedremo gli esempi che mi hai postato ... Grazie mille
|
|
|
|
|
|
#7 | |
|
Senior Member
Iscritto dal: Jun 2010
Città: Varese
Messaggi: 996
|
Quote:
Tu non devi cercare un programma/file che inizia per A, V o Z. Ma quella lettera deve essere contenuta anche nel file, programma, ad esempio 'vAcanZe.jpeg' (contiene A e Z); dovresti dare la possibilità di cercare anche per lettere, stringhe e sottostringhe. L'ideale come ti ho detto è crearti un indice di tutto il tuo disco (directory/files) e tenerlo aggiornato ogni qual volta ci sia una modifica sul disco (scrittura). L'ideale sarebbe un file XML (il peso sarebbe di qualche decina di MB, ma le prestazioni nell'aprirlo e leggerlo non penso sarebbero eccelse. Un FS è l'insieme dei tipi di dati astratti necessari per la memorizzazione, l'organizzazione gerarchica (e qui si torna al discorso di poco fa) e l'accesso in lettura. |
|
|
|
|
|
|
#8 |
|
Member
Iscritto dal: Jul 2009
Messaggi: 268
|
Ho provato a seguire questa guida : http://support.microsoft.com/kb/303974
E il codice che ho creato è questo : Codice:
private void btnCerca_Click(object sender, EventArgs e)
{
lstBoxFilesTrovati.Items.Clear();
txtFile.Enabled = false;
cboCartelle.Enabled = false;
btnCerca.Text = "Ricerca ...";
Application.UseWaitCursor = true;
Application.DoEvents(); // Elabora tutti i messaggi di Windows
CercaCartella(cboCartelle.Text);
btnCerca.Text = "Cerca";
Application.UseWaitCursor = false;
txtFile.Enabled = true;
cboCartelle.Enabled = true;
}
private void CercaCartella(string percorso)
{
try
{
foreach (string d in Directory.GetDirectories(percorso))
{
foreach (string f in Directory.GetFiles(d, txtFile.Text))
lstBoxFilesTrovati.Items.Add(f);
CercaCartella(d);
}
}
catch (System.Exception excpt)
{
Console.WriteLine(excpt.Message);
}
}
private void Form1_Load(object sender, EventArgs e)
{
cboCartelle.Items.Clear();
foreach (string d in Directory.GetLogicalDrives())
cboCartelle.Items.Add(d);
cboCartelle.Text = @"C:\";
}
Ultima modifica di pare93 : 16-12-2010 alle 15:14. |
|
|
|
|
|
#9 |
|
Member
Iscritto dal: Jul 2009
Messaggi: 268
|
up
|
|
|
|
|
|
#10 |
|
Member
Iscritto dal: Jul 2009
Messaggi: 268
|
Up
|
|
|
|
|
|
#11 |
|
Member
Iscritto dal: Jul 2009
Messaggi: 268
|
Sono riuscito a costruire un algoritmo abbastanza semplice ma efficace. Per chi volesse un chiarimento mi contatti via MP.
|
|
|
|
|
| Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 23:27.




















