PDA

Visualizza la versione completa : [VB] file


md76
26-07-2002, 09:31
Di una determinata cartella avrei bisogno di sapere il umero dei file contenuti,
e rinominare tutti i file in automatico, con un prefisso ben preciso.

chipdb
26-07-2002, 10:26
Se vuoi un metodo banale dovresti inserire nella form una FileListBox (la trovi a sinistra insieme agli altri controlli) e quindi impostare la sua proprietÓ Visible su False. Poi da codice devi eseguire:

FileListBox.Path = PercorsoCartella
NumeroFile = FileListBox.ListCount

Quindi con la proprietÓ Name rinominare tutti i file, prelevando tramite la FileListBox i loro nomi.

Byez

giuSp
26-07-2002, 10:34
fai un ciclo do...loop con Dir().:gren:



private function GetDirFiles(sDir as string, Files()as string) as long
Dim ThisFile as string,fCoutnas long

redim files(0)
ThisFile=Dir(sDir & "\*.*")
do while thisfile<>""
files(fCount)=thisfile
fCount=fCount+1
redim preserve files(fcount)
thisFile=dir()
loop
if fcount > 0 then _
redim preserve files(fcount-1)

getDirfiles =fCount
End function


quella Ŕ la funzione per ottenere tutti i file presenti in 1 directory

poi nel form


Dim files()as string,fCount as long
fCount=GetDirFiles("C:\Documenti",files())

'poi cicli sulla matrice
for a=0 to fCount-1
'nel prefizzo metti quello ke vuoi tu
prefisso="File" & a+1
'per rinominare il file
name files(a), prefisso & files(a)
next a


spero di essere stato kiaro!
ciao........
:ciauz: :ciauz:

md76
26-07-2002, 10:37
Grazie infinite per le info, sono in debito.

md76
26-07-2002, 11:18
Ho provato il tuo pezzo di codice ma non riesco a farlo funzionare, sicuramente sbaglio io qualcosa.

'Questa Ŕ una function
private function GetDirFiles(sDir as string, Files()as string) as long
Dim ThisFile as string,fCoutnas long

redim files(0)
ThisFile=Dir(sDir & "\*.*")
do while thisfile<>""
files(fCount)=thisfile
fCount=fCount+1
redim preserve files(fcount)
thisFile=dir()
loop
if fcount > 0 then _
redim preserve files(fcount-1)

getDirfiles =fCount
End function


'Questo Ŕ un bottone
Dim files()as string,fCount as long
fCount=GetDirFiles("C:\Documenti",files())

'poi cicli sulla matrice
for a=0 to fCount-1
'nel prefizzo metti quello ke vuoi tu
prefisso="File" & a+1
'per rinominare il file
name files(a), prefisso & files(a)
next a


mi si blocca sempre su name files(a), prefisso & files(a)


Scusa il disturbo

giuSp
26-07-2002, 11:28
perkŔ devi riscrivere la directory di destinazione!!



name "C:\Documenti\" files(a), "C:\Documenti\" & prefisso & files(a)


se vuoi ti modifico la funzione percedente in modo ke tu non debba riscrivere la directory?
basta kiedere!!

:ciauz: :ciauz:

md76
26-07-2002, 11:40
sicuramente sono rinco......to IO ma a me continua a non funzionare.

saluti

giuSp
26-07-2002, 11:59
ke errore ti genera?

md76
26-07-2002, 12:53
SEMPRE NELLA SOLITA STRNGA FINALE DEL RINOMINA FILE

chipdb
26-07-2002, 14:28
name "C:\Documenti\" files(a), "C:\Documenti\" & prefisso & files(a) :nonono:

Infatti la funzione NAME lavora:
Name "Percorso" & NomeFile As "Percorso" & NomeFileFinale

Bye :fagiano:

Loading