Newsgroup: it.comp.lang.delphi
Titolo: FIND!

Salve gente,
  devo creare una funzione che mi cerchi un file nelle possibili
unita' disco. Da dove inizio? Qualche comando,APi o funzioni da
consigliare?
Grazie
Guybrush

Guybrush ha scritto nel messaggio ...

Puoi utilizzare GetDriveType ... non molto tempo fa (il 6/9/00) postai una
mail che utilizzava questa funzione per riconoscere le unità ottiche; dagli
un'occhiata e, con l'ausilio dell'help, capirai come ottenere ciò che
desideri.
Ciao!
--
 -Carlo -

 Guybrush

desideri.
Scusa, ho letto male... guarda FindFirst, FindNext e FindClose...
Ciao!
--
- Carlo -

consigliare?
program FilesList ;
{by Andrea Laforgia}
{$APPTYPE CONSOLE}
uses Classes, SysUtils ;
procedure ListFilesInFolder( Folder : string ;
                             RecursiveScanning : boolean ;
                             List : TStringList ) ;
    procedure ScanFolder( Root : string ;
                          Level : integer ) ;
    var SI : TSearchRec ;
        Error : integer ;
    begin
      ChDir( Root ) ;
      Error := FindFirst( '*.*', faAnyFile, SI ) ;
      while ( Error = 0 ) do
      begin
        if ( ( RecursiveScanning ) and
           ( ( SI.Attr and faDirectory ) <> 0 ) and
             ( SI.Name[1] <> '.') ) then
          ScanFolder( SI.Name, Level + 1 )
        else
          List.Add( ExpandFileName( SI.Name ) ) ;
        Error := FindNext( SI ) ;
      end ;
      FindClose( SI )  ;
      if ( Level > 0 ) then
        ChDir( '..' ) ;
    end ;
begin
  if List = nil then Exit ;
  ScanFolder( Folder, 0 ) ;
end ;
procedure WriteFileList( List : TStringList ) ;
var I : integer ;
begin
  if List = nil then Exit ;
  for I := 0 to List.Count - 1 do
    WriteLn( List.Strings[I] ) ;
end ;
var MyFilesList : TStringList ;
begin
  MyFilesList := TStringList.Create ;
  try
    ListFilesInFolder( 'c:\winnt', true, MyFilesList ) ;
    WriteFileList( MyFilesList ) ;
  finally
    MyFilesList.Free ;
  end ;
  readln ;
end.
--
Andrea Laforgia (UIN 87230455)
----------------------------------------------------------
Non scrivetemi per e-mail, se non richiesto espressamente.
No replies in private e-mail, unless explicitly requested.
----------------------------------------------------------

Tempo fa mi è successo di dover scrivere
un algoritmo per un problema simile. Ti
conviene usare una procedura di tipo ricorsivo
che, partendo dalla radice del disco, chiama
se stessa ogni volta che trova una directory.
Ricordati di salvare l'ultimo elemento che
hai escursionato prima della chiamata
ricorsiva (ogni volta che chiami FindFirst e
FindNext, il puntatore ai file viene spostato
e la sua vecchia posizione non può essere
recuperata automaticamente).
Ciao!
Se è Microsoft non funziona!!!

Ti conviene usare una procedura di tipo ricorsivo
Con chi parli ?
--
Andrea Laforgia (ICQ 87230455)

Scusa, ho letto male... guarda FindFirst, FindNext e FindClose...
Ma come faccio a dire a questa funzione che deve guardare anche nelle
subdirectory?
Guybrush

 Se č Microsoft non funziona!!!
Quanto a questo, ti lascio l'occasione di verificare personalmente chi
fornisce la DLL di cui sopra ;-)
Ciao :-)
--
Andrea Magni
E-Mail: 
ama...@interac.it

subdirectory?
Sembra che tu non legga le risposte ai tuoi messaggi ;)
--
Andrea Laforgia (ICQ 87230455)
------------------------------ 
#exclude <windows.h>