Torna indietro   Hardware Upgrade Forum > Software > Programmazione

Lenovo ThinkPad X1 Carbon Gen 14: il business ultraleggero si rinnova dall’interno
Lenovo ThinkPad X1 Carbon Gen 14: il business ultraleggero si rinnova dall’interno
Con la quattordicesima generazione Lenovo ridisegna il suo ThinkPad più iconico attorno al nuovo Space Frame e ai processori Intel Core Ultra Series 3. Resta sotto 1Kg, è molto più semplice da riparare e si rivolge al professionista che lavora in mobilità, con un prezzo da prodotto di vertice.
Jabra Evolve3 85: le cuffie sia per l'intrattenimento che per il lavoro
Jabra Evolve3 85: le cuffie sia per l'intrattenimento che per il lavoro
Le Jabra Evolve3 85 non sono semplicemente cuffie Bluetooth con cancellazione del rumore. Sono un dispositivo professionale pensato per chi trascorre gran parte della giornata in riunione, al telefono o davanti a un assistente basato sull'intelligenza artificiale
MSI PRO MAX EDGE AI+, Ryzen AI Max+ 395 e 128 GB per far girare in locale anche i modelli più grandi
MSI PRO MAX EDGE AI+, Ryzen AI Max+ 395 e 128 GB per far girare in locale anche i modelli più grandi
Abbiamo provato MSI PRO MAX EDGE AI+, un mini-PC professionale progettato per eseguire modelli di intelligenza artificiale in locale, senza dipendere dal cloud. Il sistema abbina il processore AMD Ryzen AI Max+ 395, 128 GB di memoria unificata e un telaio in alluminio da appena 4 litri, con l'obiettivo di offrire capacità di elaborazione elevate in un formato compatto.
Tutti gli articoli Tutte le news

Vai al Forum
Rispondi
 
Strumenti
Old 16-03-2012, 08:33   #1
Silent killer
Senior Member
 
L'Avatar di Silent killer
 
Iscritto dal: Oct 2003
Città: Bari
Messaggi: 1325
C# - Ricerca files

Ciao a tutti, mi sto cimentando da poco sul C# e volevo creare un programmino che individuasse files uguali all'interno di un percorso, analizzando anche le sottodir.
Inizialmente ho scritto il programma, e in un punto ho utilizzato questa:

Codice:
 foreach (string filePath in Directory.EnumerateFiles(Percorso, "*", SearchOption.AllDirectories)) { ListaFiles.Add(new FileInfo(filePath)); }
Per crearmi una lista di FileInfo, però l'opzione SearchOption.AllDirectories non funziona bene: in pratica quando trova una cartella con accesso negato, si blocca e termina, senza andare avanti nella ricerca di files.
Allora ho pensato di far da me un sistema per cercare i files e ho trovato un algoritmo su msdn che ho modificato in modo da ottenere alla fine una lista di FileInfo:

Codice:
public class RecursiveFileSearch
    {
        static System.Collections.Specialized.StringCollection log = new System.Collections.Specialized.StringCollection();

        static void Main()
        {

                System.IO.DirectoryInfo rootDir = new DirectoryInfo(@"F:\Disegni\");
                System.IO.FileInfo[] ListaFiles = null;
                ListaFiles= WalkDirectoryTree(rootDir, ListaFiles);
            

            // Write out all the files that could not be processed.
            Console.WriteLine("Files with restricted access:");
            foreach (string s in log)
            {
                Console.WriteLine(s);
            }
            // Keep the console window open in debug mode.
            Console.WriteLine("Press any key");
            Console.ReadKey();
        }




        static FileInfo[] WalkDirectoryTree(System.IO.DirectoryInfo root, FileInfo[] files)
        {
            
            System.IO.DirectoryInfo[] subDirs = null;
            FileInfo[] AllResults = null;

            // First, process all the files directly under this folder
            try
            {
                FileInfo[] filesSottoDir = root.GetFiles("*.*");
                AllResults = new FileInfo[files.Length + filesSottoDir.Length];
                files.CopyTo(AllResults, 0);
                filesSottoDir.CopyTo(AllResults, files.Length);
            }
            // This is thrown if even one of the files requires permissions greater
            // than the application provides.
            catch (UnauthorizedAccessException e)
            {
                // This code just writes out the message and continues to recurse.
                // You may decide to do something different here. For example, you
                // can try to elevate your privileges and access the file again.
                log.Add(e.Message);
            }

            catch (System.IO.DirectoryNotFoundException e)
            {
                //Console.WriteLine(e.Message);
            }

            catch { }


            // Now find all the subdirectories under this directory.
            try
            {
                subDirs = root.GetDirectories();
            }
            catch { }

            foreach (System.IO.DirectoryInfo dirInfo in subDirs)
            {
                // Resursive call for each subdirectory.
                AllResults = WalkDirectoryTree(dirInfo, AllResults);
            }
           

            return AllResults;
        }
    }










}

Il problema è che non funziona niente, qualcuno potrebbe aiutarmi? Non riesco a capire perchè non entra nel blocco di ricerca dei files.. grazie
__________________
Silent killer è offline   Rispondi citando il messaggio o parte di esso
Old 16-03-2012, 09:21   #2
gugoXX
Senior Member
 
L'Avatar di gugoXX
 
Iscritto dal: May 2004
Città: Londra (Torino)
Messaggi: 3692
Quote:
Originariamente inviato da Silent killer Guarda i messaggi

Per crearmi una lista di FileInfo, però l'opzione SearchOption.AllDirectories non funziona bene: in pratica quando trova una cartella con accesso negato, si blocca e termina, senza andare avanti nella ricerca di files.
Secondo me funziona benissimo
__________________
Se pensi che il tuo codice sia troppo complesso da capire senza commenti, e' segno che molto probabilmente il tuo codice e' semplicemente mal scritto.
E se pensi di avere bisogno di un nuovo commento, significa che ti manca almeno un test.
gugoXX è offline   Rispondi citando il messaggio o parte di esso
Old 16-03-2012, 18:06   #3
Silent killer
Senior Member
 
L'Avatar di Silent killer
 
Iscritto dal: Oct 2003
Città: Bari
Messaggi: 1325
ho cercato ed è un problema comune a tutti :\
__________________
Silent killer è offline   Rispondi citando il messaggio o parte di esso
Old 19-03-2012, 10:43   #4
Silent killer
Senior Member
 
L'Avatar di Silent killer
 
Iscritto dal: Oct 2003
Città: Bari
Messaggi: 1325
c'è nessuuuno?
__________________
Silent killer è offline   Rispondi citando il messaggio o parte di esso
Old 19-03-2012, 12:25   #5
Silent killer
Senior Member
 
L'Avatar di Silent killer
 
Iscritto dal: Oct 2003
Città: Bari
Messaggi: 1325
ok ho risolto cmq :P
__________________
Silent killer è offline   Rispondi citando il messaggio o parte di esso
Old 21-03-2012, 11:56   #6
Silent killer
Senior Member
 
L'Avatar di Silent killer
 
Iscritto dal: Oct 2003
Città: Bari
Messaggi: 1325
Sto avendo un altro problema, in pratica ho fatto un'interfaccia con windows forms, e cliccando sul button scansione viene eseguito l'algoritmo di ricerca e visualizzati i risultati. Al click voglio anche che appaia un'immagine di caricamento, infatti come prima istruzione inserisco:

pictureBox1.Image = Image.FromFile(Application.StartupPath + "/Images/picture.jpg");

Dopo di che avviene tutta la ricerca. Il problema è che l'immagine compare solo se interrompo l'algoritmo con una messagebox, altrimenti va tutto a buon fine ma non appare questa dannata immagine. Come posso risolvere?

Ho provato anche a mettere uno sleep per permettere il caricamento dell'immagine, ma non cambia nulla, non riesco a capire.. :\
__________________

Ultima modifica di Silent killer : 21-03-2012 alle 12:35.
Silent killer è offline   Rispondi citando il messaggio o parte di esso
Old 21-03-2012, 14:27   #7
ESSE-EFFE
Member
 
Iscritto dal: May 2009
Messaggi: 186
Quote:
Originariamente inviato da Silent killer Guarda i messaggi
pictureBox1.Image = Image.FromFile(Application.StartupPath + "/Images/picture.jpg");

Dopo di che avviene tutta la ricerca. Il problema è che l'immagine compare solo se interrompo l'algoritmo con una messagebox, altrimenti va tutto a buon fine ma non appare questa dannata immagine. Come posso risolvere?
Dopo aver caricato l'immagine, prova ad aggiungere:
Codice:
pictureBox1.Refresh();
__________________
ESSE-EFFE.com
Sviluppo software e Web
Creazione loghi - Bergamo

Ultima modifica di ESSE-EFFE : 21-03-2012 alle 14:30.
ESSE-EFFE è offline   Rispondi citando il messaggio o parte di esso
Old 21-03-2012, 17:33   #8
Silent killer
Senior Member
 
L'Avatar di Silent killer
 
Iscritto dal: Oct 2003
Città: Bari
Messaggi: 1325
grande, funziona! Sull'interwebs non avevo trovato nulla
__________________
Silent killer è offline   Rispondi citando il messaggio o parte di esso
Old 22-03-2012, 12:16   #9
Silent killer
Senior Member
 
L'Avatar di Silent killer
 
Iscritto dal: Oct 2003
Città: Bari
Messaggi: 1325
altro problema.

foreach (string percorso in checkedListBox1.SelectedItems)
{
FileInfo file = new FileInfo(percorso);
file.Delete();

}


Ho scoperto che in SelectedItems c'è sempre e solo un elemento, anche se seleziono più elementi tra i risultati. Perchè? Non dovrebbe restituirmi la lista di tutti gli oggetti selezionati nella checkedListBox?
__________________
Silent killer è offline   Rispondi citando il messaggio o parte di esso
Old 22-03-2012, 14:04   #10
Silent killer
Senior Member
 
L'Avatar di Silent killer
 
Iscritto dal: Oct 2003
Città: Bari
Messaggi: 1325
ho trovato che la checkedListBox non supporta la multi selection... quindi non serve ad una benemerita mazza :\ Come posso ovviare?

edit: ho usato una listView, ma non è un granchè
__________________

Ultima modifica di Silent killer : 22-03-2012 alle 16:04.
Silent killer è offline   Rispondi citando il messaggio o parte di esso
 Rispondi


Lenovo ThinkPad X1 Carbon Gen 14: il business ultraleggero si rinnova dall’interno Lenovo ThinkPad X1 Carbon Gen 14: il business ul...
Jabra Evolve3 85: le cuffie sia per l'intrattenimento che per il lavoro Jabra Evolve3 85: le cuffie sia per l'intratteni...
MSI PRO MAX EDGE AI+, Ryzen AI Max+ 395 e 128 GB per far girare in locale anche i modelli più grandi MSI PRO MAX EDGE AI+, Ryzen AI Max+ 395 e 128 GB...
Recensione vivo X500 Pro Max: la fotografia mobile ha un nuovo protagonista Recensione vivo X500 Pro Max: la fotografia mobi...
WoW Forever: la beta è stato uno dei momenti più alti della storia dei videogiochi, e non si ripeterà WoW Forever: la beta è stato uno dei mome...
I satelliti spia russi Kosmos 2613 e Kos...
GTA VI: online la nuova mega galleria co...
Edits, l'app di Instagram, sbarca gratis...
Claude Code: il bug che ha spedito l'ema...
Perplexity lancia Teammates, gli agenti ...
Niente più datacenter? Gli eletto...
La Cina avrebbe approvato lo sviluppo de...
Epson EF-72 alla prova: Google TV, audio...
AST SpaceMobile annuncia il razzo spazia...
Apple taglia il budget AI dei dipendenti...
Fisco e intelligenza artificiale, come c...
Synology BC510 e CC410W, la videosorvegl...
600.000 chip NVIDIA fermi a Hong Kong: l...
La Cina punta tutto sull'allunaggio con ...
LG Italia compie 30 anni: gli italiani v...
Chromium
GPU-Z
OCCT
LibreOffice Portable
Opera One Portable
Opera One 106
CCleaner Portable
CCleaner Standard
Cpu-Z
Driver NVIDIA GeForce 546.65 WHQL
SmartFTP
Trillian
Google Chrome Portable
Google Chrome 120
VirtualBox
Tutti gli articoli Tutte le news Tutti i download

Strumenti

Regole
Non Puoi aprire nuove discussioni
Non Puoi rispondere ai messaggi
Non Puoi allegare file
Non Puoi modificare i tuoi messaggi

Il codice vB è On
Le Faccine sono On
Il codice [IMG] è On
Il codice HTML è Off
Vai al Forum


Tutti gli orari sono GMT +1. Ora sono le: 01:26.


Powered by vBulletin® Version 3.6.4
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
Served by www3v