|
|||||||
|
|
|
![]() |
|
|
Strumenti |
|
|
#1 |
|
Senior Member
Iscritto dal: Jul 2001
Messaggi: 367
|
Cancellare file x data
Ciao;
In una cartella che contiene un numero (inprecisato di file con la stessa estenzione), dovrei poter cancellare a blocchi ad esempio di 20 file in una volta, facendo però un controllo quali siano i file più vecchi (ovvero creati per prima). Faccio un esempio: Dentro una cartella mi trovo 20000 file. Per copiare il 20001 file non vi è sufficiente spazio per copiarlo, quindi prima di procedere alla copia vorrei cancellare 20 file o più, i quali risultano più vecchi come data di creazione. In questo modo recupero spazio sufficiente per la copia di altri file, Quando lo spazio si riesaurisce viene ripetuta la stessa cosa cancellando altri file più vecchi. Linguaggio VB6 Spero possiate aiutarmi |
|
|
|
|
|
#2 |
|
Member
Iscritto dal: Feb 2006
Messaggi: 36
|
Ciao, un semplice esempio con un tasto ed un listbox:
Codice:
Sub MostraFiles(Percorso)
Dim fs As Object, f As Object, s As String
Dim ff As Object, fc As Object
List1.Clear
Set fs = CreateObject("Scripting.FileSystemObject")
Set fc = fs.GetFolder(Percorso)
Set ff = fc.Files
For Each f In ff
s = UCase(Percorso) & " "
s = s & "Creazione: " & f.DateCreated & " "
s = s & "Ultimo accesso: " & f.DateLastAccessed & " "
s = s & "Ultima modifica: " & f.DateLastModified
List1.AddItem s
Next
End Sub
Private Sub Command1_Click()
MostraFiles "c:\cartella"
End Sub
|
|
|
|
|
|
#3 |
|
Senior Member
Iscritto dal: Jul 2001
Messaggi: 367
|
Crazie del consiglio. Pero' io devo poter cancellare ad esempio 20 files più vecchi non tutti i files. Oppure se la cosa possa essere più veloce potrei fare anche di scandire solo delle cartelle contenute in una cartella radice i quali anno come nome la data di creazione.
In questo caso dovrei cancellare ad esempio le 20 cartelle piu' vecchie lasciando gli altri. In pratica il tutto mi serve che in caso di spazio su disco insufficiente io possa cancellare i files o cartelle piu' vecchi per recuperare spazio. |
|
|
|
|
|
#4 |
|
Member
Iscritto dal: Feb 2006
Messaggi: 36
|
Ciao, forse non mi sono spiegata: nell'esempio, mostravo il risultato su un ListBox, ma puoi verificare il contenuto di f.DateCreated e decidere se eliminare il file, confrontandolo, p.es. con la data di sistema.
Oppure puoi cancellare le cartelle fornite da fs.GetFolder(Percorso) |
|
|
|
|
|
#5 |
|
Senior Member
Iscritto dal: Jul 2001
Messaggi: 367
|
Quello che non riesco a capire e come faccio partendo dalla data del sistema a cancellare ad esempio 20 files partendo da quello più vecchio?
Sarebbe molto utile avere nella listBox i nomi già ordinati dal più vecchio a salire. Cosi facendo sarebbe semplice in quanto basterebbe cancellare ad esempio i 20 files presenti nella ListBox partendo dal primo a salire |
|
|
|
|
|
#6 | |
|
Member
Iscritto dal: Feb 2006
Messaggi: 36
|
Quote:
Codice:
For Each f In ff
s = Format(f.DateCreated, "yyyymmdd") & " "
s = s & UCase(Percorso) & " "
s = s & "Creazione: " & f.DateCreated & " "
s = s & "Ultimo accesso: " & f.DateLastAccessed & " "
s = s & "Ultima modifica: " & f.DateLastModified
List1.AddItem s
Next
In questo modo, vedrai all'inizio le date meno recenti |
|
|
|
|
|
|
#7 |
|
Senior Member
Iscritto dal: Jul 2001
Messaggi: 367
|
OK. Ti ringrazio tanto per il tuo prezioso aiuto
Ciao |
|
|
|
|
| Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 02:34.



















