anthony0903
Messages postés2Date d'inscriptionmardi 11 février 2014StatutMembreDernière intervention13 février 2014
-
Modifié par anthony0903 le 11/02/2014 à 16:08
anthony0903
Messages postés2Date d'inscriptionmardi 11 février 2014StatutMembreDernière intervention13 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
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
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
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
cs_ShayW
Messages postés3258Date d'inscriptionjeudi 26 novembre 2009StatutMembreDernière intervention 3 décembre 201956 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)
Vous n’avez pas trouvé la réponse que vous recherchez ?
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