Je trouve pas l'erreur

Résolu
anthony0903 Messages postés 2 Date d'inscription mardi 11 février 2014 Statut Membre Dernière intervention 13 février 2014 - Modifié par anthony0903 le 11/02/2014 à 16:08
anthony0903 Messages postés 2 Date d'inscription mardi 11 février 2014 Statut Membre Dernière intervention 13 février 2014 - 13 févr. 2014 à 13:44
Bonjour,
Je m'appel Anthony est je doit créer un petit programme pour mon travail.
Je suis un débutant (je commence juste a utiliser le vb depuis quelque jour).
l'application servirait a supprimer les fichiers des dossier s'il dépasse une taille donnée.

voila le code que j'ai fait il fonction bien mais il ne peut être utiliser que pour mon travail.
je souhaiterai pourvoir l'installer sur n'importe qu'elle pc.
Voila mon premier code qui marche


code du formulaire:
Public Class Form1

Dim mavar As Object
Public vmarva As String
Dim list1 As String
Dim list2 As String
Dim list3 As String
Dim list4 As String
Dim list5 As String

Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
Dim _main_Dir As New IO.DirectoryInfo(Application.StartupPath)
For Each _Dir In _main_Dir.GetDirectories
mavar = _Dir
ListBox1.Items.Add(mavar)
Next

ListBox1.SetSelected(0, True)
list1 = ListBox1.SelectedItem.ToString
ListBox1.SetSelected(1, True)
list2 = ListBox1.SelectedItem.ToString
ListBox1.SetSelected(2, True)
list3 = ListBox1.SelectedItem.ToString
ListBox1.SetSelected(3, True)
list4 = ListBox1.SelectedItem.ToString
ListBox1.SetSelected(4, True)
list5 = ListBox1.SelectedItem.ToString

mavar = TailleDossier(Application.StartupPath)
If mavar > 31457280 Then 'equivalent a 30giga octé
Dim PATHDOSSIER As String = Application.StartupPath & "\" & list1
If System.IO.Directory.Exists(PATHDOSSIER) Then
For Each files As String In System.IO.Directory.GetFiles(PATHDOSSIER)
System.IO.File.Delete(files)
Next
Dim PATHDOSSIER2 As String = Application.StartupPath & "\" & list2
If System.IO.Directory.Exists(PATHDOSSIER2) Then
For Each files As String In System.IO.Directory.GetFiles(PATHDOSSIER2)
System.IO.File.Delete(files)
Next
Dim PATHDOSSIER3 As String = Application.StartupPath & "\" & list3
If System.IO.Directory.Exists(PATHDOSSIER3) Then
For Each files As String In System.IO.Directory.GetFiles(PATHDOSSIER3)
System.IO.File.Delete(files)
Next
Dim PATHDOSSIER4 As String = Application.StartupPath & "\" & list4
If System.IO.Directory.Exists(PATHDOSSIER4) Then
For Each files As String In System.IO.Directory.GetFiles(PATHDOSSIER4)
System.IO.File.Delete(files)
Next
Dim PATHDOSSIER5 As String = Application.StartupPath & "\" & list5
If System.IO.Directory.Exists(PATHDOSSIER5) Then
For Each files As String In System.IO.Directory.GetFiles(PATHDOSSIER5)
System.IO.File.Delete(files)
Next
'End
'System.IO.Directory.Delete(PATHDOSSIER)
End If
End If
End If
End If
End If
Else
'End
End If

End Sub

code du module
Module Module1
Function TailleDossier(Dossier)
Dim fso, d, f, s
fso = CreateObject("Scripting.FileSystemObject")

On Error GoTo trt_Erreur
If Len(Dossier) < 4 Then
d = fso.GetDrive(Dossier)
s = Format(d.TotalSize - d.AvailableSpace, "### ### ### ### ##0")
Else
f = fso.GetFolder(Dossier)
s = Format(f.Size, "### ### ### ### ##0")
End If
TailleDossier = s - 32768

Exit Function

trt_Erreur:

MsgBox("Lecteur ou chemin inconnu !")

End Function
End Module

est voila le code que j'essaye de faire mais je ne trouve pas l'erreur

Public Class Form2

Dim mavar As Object
Dim Nligne As Integer
Dim List As String
Dim Vnom As String

Private Sub Form2_Load(sender As Object, e As EventArgs) Handles MyBase.Load

Dim _main_Dir As New IO.DirectoryInfo(Application.StartupPath)
For Each _Dir In _main_Dir.GetDirectories
mavar = _Dir
ListBox1.Items.Add(mavar)
Next

Nligne = ListBox1.Items.Count()
For i = 1 To Nligne
ListBox1.SetSelected(i, True)
Vnom = "list" & i
Vnom = ListBox1.SelectedItem.ToString
mavar = TailleDossier(Application.StartupPath)
Next
For j = 1 To Nligne

If mavar > 30000 Then
Dim pathd As String = Application.StartupPath & "\" & Vnom
If System.IO.Directory.Exists(pathd(j)) Then
For Each files As String In System.IO.Directory.GetFiles(pathd(j))
System.IO.File.Delete(files)
Next

End If
End If
Next
End Sub
End Class


merci de votre aide j'espère que je ne me suis pas tromper est que je suis bien aller dans le bon endroit sur le forum

je souhaite encore préciser que le code n'a pas été trouver comme sa sur le net,j'ai rechercher des bouts de code déjà existant que j'ai mis ensemble pour réaliser mon code

5 réponses

jordane45 Messages postés 38144 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 21 avril 2024 344
Modifié par jordane45 le 11/02/2014 à 16:15
Bonjour,

Nous montrer le code que tu essayes de faire c'est bien..
Nous dire ce qui ne fonctionne pas et les éventuels messages d'erreurs serait UN PLUS NON NEGLIGEABLE.



Avant de poser une question, merci de lire la charte du site.
Cordialement, Jordane
0
cs_ShayW Messages postés 3253 Date d'inscription jeudi 26 novembre 2009 Statut Membre Dernière intervention 3 décembre 2019 57
11 févr. 2014 à 16:26
Bonjour

et ça marche.....
un module 2 form et un goto c'est un peu lourd

Je suis sur que tu peux faire plus simple

Je trouve pas l'erreur
à ton travail le pc est différent ?

l'application servirait a supprimer les fichiers des dossier s'il dépasse une taille donnée.

de tous les dossiers ?
0
ucfoutu Messages postés 18038 Date d'inscription lundi 7 décembre 2009 Statut Modérateur Dernière intervention 11 avril 2018 211
Modifié par ucfoutu le 11/02/2014 à 17:14
Bonjour,
J'ai au premier coup d'oeil des difficultés à comprendre :
- l'intérêt de calculer en boucle ce qui est invariable au sein de la boucle :
mavar = TailleDossier(Application.StartupPath)
- l'intérêt de la première de ces deux lignes successives :
Vnom = "list" & i
Vnom = ListBox1.SelectedItem.ToString
--
________________________
Réponse exacte ? => "REPONSE ACCEPTEE" facilitera les recherches.
Pas d'aide en ligne installée ? => ne comptez pas sur moi pour simplement répéter son contenu. Je n'interviend
0
cs_ShayW Messages postés 3253 Date d'inscription jeudi 26 novembre 2009 Statut Membre Dernière intervention 3 décembre 2019 57
11 févr. 2014 à 18:45
D'abord
31457280 Then 'equivalent a 30giga octé
31457280 = 30 * 2^20 = 30 Mega bytes
1 giga byte = 2^30
30 giga byte = 30 * 2^30

A tester avec précaution car les fichiers sont vraiment supprimer
il ne sont pas copier dans la corbeille

Private Sub DeletFilesSize(ByVal dir As String, ByVal sizeinbyte As Double)
Try
For Each file As String In Directory.GetFiles(dir)
Dim info As New FileInfo(file)
If info.Length > sizeinbyte Then
IO.File.Delete(file)
End If
Next
For Each SUBDIR As String In Directory.GetDirectories(dir)
DeletFilesSize(SUBDIR, sizeinbyte)
Next
Catch ex As Exception
MessageBox.Show(ex.Message)
End Try

End Sub

Supprime tous les fichiers de plus de 30 giga se trouvant dans
E et tous ses sub directories
DeletFilesSize("E:\", 30 * 2 ^ 30)
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
anthony0903 Messages postés 2 Date d'inscription mardi 11 février 2014 Statut Membre Dernière intervention 13 février 2014
Modifié par anthony0903 le 13/02/2014 à 13:47
merci a tous j'ai continué a chercher est j'ai trouver voila je vous donne le code

Public Class controle


Dim mavar As Object
Dim Nligne As Integer
Dim List As String


Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load

mavar = TailleDossier(Application.StartupPath) 'recuperer la taille du dossier dans une variable

If mavar > 31457280 Then 'equivalent a 30giga octé (comparaison)

'fonction pour ajouter les dossiers dans une listbox du formulaire
Dim _main_Dir As New IO.DirectoryInfo(Application.StartupPath)
For Each _Dir In _main_Dir.GetDirectories
mavar = _Dir
ListBox1.Items.Add(mavar) 'ajouter les nom des dossiers a la listbox
Next
'fin du code

Nligne = ListBox1.Items.Count() 'compter le nombre de ligne dans une listbox

'création d'un tableau avec pour limite le nombre de ligne -1
For i = 0 To Nligne - 1
ListBox1.SetSelected(i, True) 'selectionner dans une listbox les lighe une apres l'autre
List = ListBox1.SelectedItem.ToString 'ajouter dans la varaible list la selection de la listbox
Dim PATHDOSSIER As String = Application.StartupPath & "\" & List 'recuperer les chemins des dossier
If System.IO.Directory.Exists(PATHDOSSIER) Then 'controle s'il existe
'code pour suprimer les fichiers
For Each files As String In System.IO.Directory.GetFiles(PATHDOSSIER)
System.IO.File.Delete(files)
Next
'fin du code
End 'fermer le programme
End If
Next
End 'fermer le programme
End If
End Sub
End Class

merci encore de votre aide est oui j'ai pas l'habitude des forums je suivrais vos conseil pour les prochain message
0
Rejoignez-nous