Advertisement
Guest User

Untitled

a guest
Jul 4th, 2016
137
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
VB.NET 20.95 KB | None | 0 0
  1. Imports System.IO
  2. Imports System.IO.Compression
  3.  
  4. Public Class BackUp
  5.  
  6.     Const FichierIni As String = "BackUp.ini"
  7.     Const LignesFichierIni As Integer = 5
  8.     Const CleSauvegardePath As String = "SauvegardePath"
  9.     Const CleTempSauvegarde As String = "TempSauvegarde"
  10.     Const ClePaths As String = "Paths"
  11.     Dim ListePath(0) As String
  12.     Dim NombreSauvegarde As Integer = 0
  13.  
  14.     Private Sub BackUp_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
  15.         LabelStatut.Text = "Prêt"
  16.         Me.TimerSauvegarde.Interval = Me.IntervalleSauvegarde.Value * 60000
  17.         RecupereInfosFichierIni()
  18.         VerificationPourSauvegarde()
  19.         If Me.BtnCommencer.Enabled = True Then
  20.             Me.BtnArreter.Enabled = False
  21.         End If
  22.         If ListDossiers.Items.Count - 1 > 0 Then
  23.             If ListDossiers.Items.Item(ListDossiers.Items.Count - 1) = "" Then
  24.                 ListDossiers.Items.RemoveAt(ListDossiers.Items.Count - 1)
  25.             End If
  26.         End If
  27.         If ListSauvegarde.SelectedItems.Count = 0 Then
  28.             BtnSupprimerSauvegarde.Enabled = False
  29.             BtnExtraire.Enabled = False
  30.             BtnCopierVers.Enabled = False
  31.             BtnRestaurer.Enabled = False
  32.         End If
  33.         ListSauvegarde.Columns.Add("", 20)
  34.         ListSauvegarde.Columns.Add("Date", 66)
  35.         ListSauvegarde.Columns.Add("Heure", 43)
  36.         ListSauvegarde.Columns.Add("Path", 203)
  37.         Dim InfoAjouter = New System.Windows.Forms.ToolTip()
  38.         InfoAjouter.SetToolTip(Me.BtnAjouter, "Ajouter un nouveau dossier à la liste des dossiers à sauvegarder")
  39.         Dim InfoSupprimer = New System.Windows.Forms.ToolTip()
  40.         InfoSupprimer.SetToolTip(Me.BtnSupprimer, "Supprimer le dossier sélectionné de la liste des dossiers à sauvegarder")
  41.         Dim InfoSuppressionPathSauvegarde = New System.Windows.Forms.ToolTip()
  42.         InfoSuppressionPathSauvegarde.SetToolTip(Me.SuppressionPathSauvegarde, "Réinitialise le dossier de sauvegarde")
  43.         Dim InfoIntervalle = New System.Windows.Forms.ToolTip()
  44.         InfoIntervalle.SetToolTip(Me.IntervalleSauvegarde, "Déterminer l'intervalle entre deux sauvegardes")
  45.         Dim InfoSauvegardeConfig = New System.Windows.Forms.ToolTip()
  46.         InfoSauvegardeConfig.SetToolTip(Me.BtnSauvegardeConfig, "Sauvegarder la configuration")
  47.         Dim InfoCommencer = New System.Windows.Forms.ToolTip()
  48.         InfoCommencer.SetToolTip(Me.BtnCommencer, "Commencer la sauvegarde automatique")
  49.         Dim InfoArreter = New System.Windows.Forms.ToolTip()
  50.         InfoArreter.SetToolTip(Me.BtnArreter, "Arrêter la sauvegarde automatique")
  51.         Dim InfoSauvegardeManu = New System.Windows.Forms.ToolTip()
  52.         InfoSauvegardeManu.SetToolTip(Me.BtnSauvegardeManuelle, "Effectuer une sauvegarde manuelle")
  53.         Dim InfoToutSelect = New System.Windows.Forms.ToolTip()
  54.         InfoToutSelect.SetToolTip(Me.CheckSelection, "Sélectionne / Désélectionne toutes les sauvegardes effectuées")
  55.         Dim InfoSupprimerSauvegarde = New System.Windows.Forms.ToolTip()
  56.         InfoSupprimerSauvegarde.SetToolTip(Me.BtnSupprimerSauvegarde, "Supprimer la ou les sauvegarde(s) sélectionnées de la liste et de l'ordinateur")
  57.         Dim InfoExtraire = New System.Windows.Forms.ToolTip()
  58.         InfoExtraire.SetToolTip(Me.BtnExtraire, "Extraie la ou les sauvegarde(s) sélectionnées")
  59.         Dim InfoCopierVers = New System.Windows.Forms.ToolTip()
  60.         InfoCopierVers.SetToolTip(Me.BtnCopierVers, "Copie la ou les sauvegarde(s) sélectionnées vers un dossier sélectionné")
  61.         Dim InfoRestaurer = New System.Windows.Forms.ToolTip()
  62.         InfoRestaurer.SetToolTip(Me.BtnRestaurer, "Restaure la sauvegarde sélectionné")
  63.         If My.Settings.DemarrageTimer = True Then
  64.             Commencer()
  65.         End If
  66.         For x As Integer = 0 To 10
  67.             Sauvegarde()
  68.         Next
  69.         If My.Settings.SauvegardeLancement = True Then
  70.             Sauvegarde()
  71.         End If
  72.     End Sub
  73.  
  74.     Private Sub BackUp_Shown(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Shown
  75.         If My.Settings.ArrierePlan = True Then
  76.             Me.Visible = False
  77.         End If
  78.     End Sub
  79.  
  80.     Private Sub BtnAjouter_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles BtnAjouter.Click
  81.         If Me.DialogueDossier.ShowDialog() Then
  82.             For x As Integer = 0 To ListDossiers.Items.Count - 1
  83.                 If Me.DialogueDossier.SelectedPath = ListDossiers.Items.Item(x) Then
  84.                     MsgBox("Le dossier sélectionné est déjà présent dans la liste", MsgBoxStyle.Information, "BackUp - Information")
  85.                     Exit Sub
  86.                 End If
  87.             Next
  88.             Me.ListDossiers.Items.Add(Me.DialogueDossier.SelectedPath)
  89.         End If
  90.         VerificationPourSauvegarde()
  91.     End Sub
  92.  
  93.     Private Sub BtnSupprimer_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles BtnSupprimer.Click
  94.         If Not Me.ListDossiers.SelectedItem Is Nothing Then
  95.             Me.ListDossiers.Items.Remove(Me.ListDossiers.SelectedItem)
  96.         Else
  97.             MsgBox("Sélectionnez un dossier à supprimer !", MsgBoxStyle.Information, "Erreur")
  98.         End If
  99.         VerificationPourSauvegarde()
  100.     End Sub
  101.  
  102.     Private Sub PathSauvegarde_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles PathSauvegarde.Click
  103.         If Me.DialogueDossier.ShowDialog() Then
  104.             Me.PathSauvegarde.Text = DialogueDossier.SelectedPath
  105.         End If
  106.     End Sub
  107.  
  108.     Private Sub TimerSauvegarde_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles TimerSauvegarde.Tick
  109.         Sauvegarde()
  110.     End Sub
  111.  
  112.     Private Sub BtnSauvegardeConfig_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles BtnSauvegardeConfig.Click
  113.         SauvegardeFichierIni()
  114.     End Sub
  115.  
  116.     Private Sub BtnSauvegardeManuelle_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles BtnSauvegardeManuelle.Click
  117.         Sauvegarde()
  118.     End Sub
  119.  
  120.     Sub SauvegardeFichierIni()
  121.         Try
  122.             If Me.PathSauvegarde.Text = "" Then
  123.                 MsgBox("Veuillez sélectionner un dossier de sauvegarde !", MsgBoxStyle.Information, "Erreur")
  124.             ElseIf Not Directory.Exists(Me.PathSauvegarde.Text) Then
  125.                 MsgBox("Dossier de sauvegarde invalide !", MsgBoxStyle.Critical, "Erreur")
  126.             Else
  127.                 File.WriteAllLines(FichierIni, CreeStructureFichierIni(Me.PathSauvegarde.Text, Me.IntervalleSauvegarde.Value, Me.ListDossiers.Items))
  128.             End If
  129.         Catch ex As Exception
  130.             MsgBox("Une erreur est survenue lors de la sauvegarde du fichier de configration !", MsgBoxStyle.Critical, "Erreur")
  131.         End Try
  132.     End Sub
  133.  
  134.     Function CreeStructureFichierIni(ByVal SauvegardePath As String, ByVal TempsSauvegarde As Integer, ByVal PathsASauvegarde As ListBox.ObjectCollection) As String()
  135.             Dim FichierIni(LignesFichierIni + PathsASauvegarde.Count) As String
  136.             FichierIni(0) = "; Fichier de configuration de BackUp"
  137.             FichierIni(1) = "[Configuration]"
  138.             FichierIni(2) = CleSauvegardePath & "=" & SauvegardePath
  139.             FichierIni(3) = CleTempSauvegarde & "=" & TempsSauvegarde
  140.             FichierIni(4) = ""
  141.             FichierIni(5) = "[Paths]"
  142.             Dim Compteur As Integer = LignesFichierIni
  143.             For Each Path As String In PathsASauvegarde
  144.                 Compteur += 1
  145.                 FichierIni(Compteur) = ClePaths & Compteur - LignesFichierIni & "=" & Path
  146.             Next
  147.             Return FichierIni
  148.     End Function
  149.  
  150.     Function RecupereCleFichierIni(ByVal Cle As String) As String
  151.         Try
  152.             For Each Ligne As String In File.ReadAllLines(FichierIni)
  153.                 If Ligne.Split("=")(0) = Cle Then
  154.                     Return Ligne.Split("=")(1)
  155.                 End If
  156.             Next
  157.         Catch ex As Exception
  158.             MsgBox("Une erreur est survenue lors de la récupération des clés du fichier de configuration !", MsgBoxStyle.Critical, "Erreur")
  159.         End Try
  160.         Return ""
  161.     End Function
  162.  
  163.     Function RecupereInfosFichierIni() As Boolean
  164.         Try
  165.             If File.Exists(FichierIni) Then
  166.                 Dim SauvegardePath As String = RecupereCleFichierIni(CleSauvegardePath)
  167.                 Dim TempSauvegarde As String = RecupereCleFichierIni(CleTempSauvegarde)
  168.                 Dim Paths(100) As String
  169.                 Dim i As Integer = 0
  170.                 Do
  171.                     i += 1
  172.                     Paths(i - 1) = RecupereCleFichierIni(ClePaths & i)
  173.                 Loop While Paths(i - 1) <> ""
  174.                 If (SauvegardePath <> "") And (TempSauvegarde <> "") And (i - 1 > 0) Then
  175.                     Me.PathSauvegarde.Text = SauvegardePath
  176.                     Me.IntervalleSauvegarde.Value = TempSauvegarde
  177.                     Me.ListDossiers.Items.Clear()
  178.                     For j As Integer = 0 To i - 1
  179.                         Me.ListDossiers.Items.Add(Paths(j))
  180.                     Next
  181.                 Else
  182.                     MsgBox("Le fichier " & FichierIni & " est corrompu, utilisation des paramètres par défaut", MsgBoxStyle.Information, "BackUp - Information")
  183.                     Return False
  184.                 End If
  185.             Else
  186.                 MsgBox("Le fichier " & FichierIni & " n'a pas été trouvé, utilisation des paramètres par défaut", MsgBoxStyle.Information, "BackUp - Information")
  187.                 Return False
  188.             End If
  189.         Catch ex As Exception
  190.             MsgBox("Une erreur est survenue lors de la récupération des informations du fichier de configuration !", MsgBoxStyle.Critical, "Erreur")
  191.         End Try
  192.         Return True
  193.     End Function
  194.  
  195.     Sub Sauvegarde()
  196.         Try
  197.             If Directory.Exists(Me.PathSauvegarde.Text) Then
  198.                 LabelStatut.Text = "Sauvegarde en cours ..."
  199.                 Me.Refresh()
  200.                 If Me.PathSauvegarde.Text.EndsWith("\") Then
  201.                     Me.PathSauvegarde.Text.Trim("\")
  202.                 End If
  203.                 Dim DossierSauvegarde As String = Me.PathSauvegarde.Text & "\Sauvegarde du " & Date.Now.ToShortDateString.Replace("/", "-") & " a " & Date.Now.ToShortTimeString.Replace(":", "h")
  204.                 Dim PathZip As String = Me.PathSauvegarde.Text & "\Sauvegarde du " & Date.Now.ToShortDateString.Replace("/", "-") & " a " & Date.Now.ToShortTimeString.Replace(":", "h") & ".zip"
  205.                 If Not Directory.Exists(DossierSauvegarde) And Not File.Exists(PathZip) Then
  206.                     Directory.CreateDirectory(DossierSauvegarde)
  207.                     For Each PathASauvegarde As String In ListDossiers.Items
  208.                         If Directory.Exists(PathASauvegarde) Then
  209.                             CopieDossier(New DirectoryInfo(PathASauvegarde), New DirectoryInfo(DossierSauvegarde & "\" & Path.GetFileName(PathASauvegarde)))
  210.                         End If
  211.                     Next
  212.                     Dim Tableau As String() = New String(3) {}
  213.                     Dim NouvItem As ListViewItem
  214.                     Tableau(0) = ""
  215.                     Tableau(1) = Date.Now.ToShortDateString.Replace("/", "-")
  216.                     Tableau(2) = Date.Now.ToShortTimeString.Replace(":", "h")
  217.                     Tableau(3) = PathZip
  218.                     NouvItem = New ListViewItem(Tableau)
  219.                     ListSauvegarde.Items.Add(NouvItem)
  220.                     ListSauvegarde.Columns(3).Width = -2
  221.                     ListePath(NombreSauvegarde) = PathZip
  222.                     Array.Resize(ListePath, ListePath.Length + 1)
  223.                     NombreSauvegarde += 1
  224.                     ZipFile.CreateFromDirectory(DossierSauvegarde, PathZip)
  225.                     Directory.Delete(DossierSauvegarde, True)
  226.                     If My.Settings.Notification = True Then
  227.                         IconNotification.BalloonTipIcon = ToolTipIcon.Info
  228.                         IconNotification.BalloonTipTitle = "Nouvelle sauvegarde"
  229.                         IconNotification.BalloonTipText = "Une nouvelle sauvegarde a  été effectuée"
  230.                         IconNotification.Visible = True
  231.                         IconNotification.ShowBalloonTip(1000)
  232.                     End If
  233.                 End If
  234.             Else
  235.                 MsgBox("Sauvegarde échouée : le dossier de sauvegarde est invalide, veuillez le redéfinir !", MsgBoxStyle.Critical, "Erreur")
  236.             End If
  237.         Catch ex As Exception
  238.             MsgBox("Une erreur est survenue lors de l'opération de sauvegarde !", MsgBoxStyle.Critical, "Erreur")
  239.         End Try
  240.         LabelStatut.Text = "Prêt"
  241.     End Sub
  242.  
  243.     Sub CopieDossier(ByVal DossierSource As DirectoryInfo, ByVal DossierDesination As DirectoryInfo)
  244.         Try
  245.             DossierDesination.Create()
  246.             For Each Fichier As FileInfo In DossierSource.GetFiles()
  247.                 Fichier.CopyTo(Path.Combine(DossierDesination.FullName, Fichier.Name))
  248.             Next
  249.             For Each SousRepertoire As DirectoryInfo In DossierSource.GetDirectories()
  250.                 CopieDossier(SousRepertoire, DossierDesination.CreateSubdirectory(SousRepertoire.Name))
  251.             Next
  252.         Catch ex As Exception
  253.             MsgBox("Une erreur est survenue lors de la copie des dossiers !", MsgBoxStyle.Critical, "Erreur")
  254.         End Try
  255.     End Sub
  256.  
  257.     Sub Commencer()
  258.         Me.TimerSauvegarde.Enabled = True
  259.         Me.BtnCommencer.Enabled = False
  260.         Me.BtnArreter.Enabled = True
  261.         Me.GrpDossiers.Enabled = False
  262.         Me.GrpConfig.Enabled = False
  263.     End Sub
  264.  
  265.     Sub Arreter()
  266.         Me.TimerSauvegarde.Enabled = False
  267.         Me.BtnArreter.Enabled = False
  268.         Me.BtnCommencer.Enabled = True
  269.         Me.GrpDossiers.Enabled = True
  270.         Me.GrpConfig.Enabled = True
  271.     End Sub
  272.  
  273.     Sub VerificationPourSauvegarde()
  274.         If ListDossiers.Items.Count = 0 Or PathSauvegarde.Text = "" Then
  275.             BtnCommencer.Enabled = False
  276.         Else
  277.             BtnCommencer.Enabled = True
  278.         End If
  279.     End Sub
  280.  
  281.     Private Sub BtnCommencer_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles BtnCommencer.Click
  282.         Commencer()
  283.         If My.Settings.SauvegardeDebutAuto = True Then
  284.             Sauvegarde()
  285.         End If
  286.     End Sub
  287.  
  288.     Private Sub BtnArreter_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles BtnArreter.Click
  289.         Arreter()
  290.         If My.Settings.SauvegardeFinAuto = True Then
  291.             Sauvegarde()
  292.         End If
  293.     End Sub
  294.  
  295.     Private Sub CheckSelection_CheckedChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles CheckSelection.CheckedChanged
  296.         If CheckSelection.Checked = True Then
  297.             For n As Integer = 0 To ListSauvegarde.Items.Count - 1
  298.                 ListSauvegarde.Items.Item(n).Checked = True
  299.             Next
  300.         Else
  301.             For n As Integer = 0 To ListSauvegarde.Items.Count - 1
  302.                 ListSauvegarde.Items.Item(n).Checked = False
  303.             Next
  304.         End If
  305.     End Sub
  306.  
  307.     Private Sub ListSauvegarde_ItemChecked(ByVal sender As Object, ByVal e As System.Windows.Forms.ItemCheckedEventArgs) Handles ListSauvegarde.ItemChecked
  308.         Dim NombreItemSelect As Integer = ListSauvegarde.CheckedItems.Count
  309.         If NombreItemSelect = 0 Then
  310.             BtnSupprimerSauvegarde.Enabled = False
  311.             BtnExtraire.Enabled = False
  312.             BtnCopierVers.Enabled = False
  313.             BtnRestaurer.Enabled = False
  314.         ElseIf NombreItemSelect = 1 Then
  315.             BtnSupprimerSauvegarde.Enabled = True
  316.             BtnExtraire.Enabled = True
  317.             BtnCopierVers.Enabled = True
  318.             BtnRestaurer.Enabled = True
  319.         ElseIf NombreItemSelect = ListSauvegarde.Items.Count Then
  320.             CheckSelection.Checked = True
  321.         Else
  322.             BtnSupprimerSauvegarde.Enabled = True
  323.             BtnExtraire.Enabled = True
  324.             BtnCopierVers.Enabled = True
  325.             BtnRestaurer.Enabled = False
  326.         End If
  327.     End Sub
  328.  
  329.     Private Sub TimerRefresh_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles TimerRefresh.Tick
  330.         For x As Integer = ListSauvegarde.Items.Count - 1 To 0 Step -1
  331.             If Not File.Exists(ListePath(x)) Then
  332.                 ListSauvegarde.Items.RemoveAt(x)
  333.             End If
  334.         Next
  335.     End Sub
  336.  
  337.     Private Sub PathSauvegarde_MouseHover(ByVal sender As Object, ByVal e As System.EventArgs) Handles PathSauvegarde.MouseHover
  338.         Dim InfoDossierSauvegarde = New System.Windows.Forms.ToolTip()
  339.         InfoDossierSauvegarde.SetToolTip(Me.PathSauvegarde, "Sélectionner le dossier de sauvegarde")
  340.     End Sub
  341.  
  342.     Private Sub IconNotification_MouseClick(ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles IconNotification.MouseClick
  343.         If My.Settings.ArrierePlan = True Then
  344.             If e.Button = MouseButtons.Left Then
  345.                 If Me.Visible = True Then
  346.                     Me.Visible = False
  347.                 Else
  348.                     Me.Visible = True
  349.                 End If
  350.             End If
  351.         End If
  352.     End Sub
  353.  
  354.     Private Sub OptionCommencer_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles OptionCommencer.Click
  355.         Commencer()
  356.     End Sub
  357.  
  358.     Private Sub OptionArreter_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles OptionArreter.Click
  359.         Arreter()
  360.     End Sub
  361.  
  362.     Private Sub OptionSauvegardeManu_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles OptionSauvegardeManu.Click
  363.         Sauvegarde()
  364.     End Sub
  365.  
  366.     Private Sub OptionQuitter_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles OptionQuitter.Click
  367.         Me.Close()
  368.     End Sub
  369.  
  370.     Private Sub OptionTopCommencer_Click_1(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles OptionTopCommencer.Click
  371.         Commencer()
  372.     End Sub
  373.  
  374.     Private Sub OptionTopArreter_Click_1(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles OptionTopArreter.Click
  375.         Arreter()
  376.     End Sub
  377.  
  378.     Private Sub OptionTopSauvegardeManu_Click_1(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles OptionTopSauvegardeManu.Click
  379.         Sauvegarde()
  380.     End Sub
  381.  
  382.     Private Sub OptionTopQuitter_Click_1(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles OptionTopQuitter.Click
  383.         Me.Close()
  384.     End Sub
  385.  
  386.     Private Sub OptionReinitialiserConfig_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles OptionReinitialiserConfig.Click
  387.         Dim ConfirmationReinitialisation As MsgBoxResult = MsgBox("Etes-vous sûr de vouloir réinitialiser la configuration de BackUp ?", MsgBoxStyle.Question + MsgBoxStyle.YesNo, "BackUp - Réinitialisation")
  388.         If ConfirmationReinitialisation = MsgBoxResult.Yes Then
  389.             File.Delete(FichierIni)
  390.             ListDossiers.Items.Clear()
  391.             PathSauvegarde.Text = ""
  392.             IntervalleSauvegarde.Value = 1
  393.         End If
  394.     End Sub
  395.  
  396.     Private Sub OptionTopPreferences_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles OptionTopPreferences.Click
  397.         Preferences.ShowDialog()
  398.     End Sub
  399.  
  400.     Private Sub PathSauvegarde_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles PathSauvegarde.TextChanged
  401.         VerificationPourSauvegarde()
  402.     End Sub
  403.  
  404.     Private Sub SuppressionPathSauvegarde_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles SuppressionPathSauvegarde.Click
  405.         PathSauvegarde.Text = ""
  406.     End Sub
  407.  
  408.     Private Sub ListDossiers_DragEnter(ByVal sender As Object, ByVal e As System.Windows.Forms.DragEventArgs) Handles ListDossiers.DragEnter
  409.         e.Effect = DragDropEffects.All
  410.     End Sub
  411.  
  412.     Private Sub ListDossiers_DragDrop(ByVal sender As Object, ByVal e As System.Windows.Forms.DragEventArgs) Handles ListDossiers.DragDrop
  413.         Try
  414.             Dim Tableau As Array = CType(e.Data.GetData(DataFormats.FileDrop), Array)
  415.             For n As Integer = 0 To Tableau.Length - 1
  416.                 Dim path As String = TryCast(Tableau.GetValue(n), String)
  417.                 If Directory.Exists(path) Then
  418.                     For x As Integer = 0 To ListDossiers.Items.Count - 1
  419.                         If path = ListDossiers.Items.Item(x) Then
  420.                             MsgBox("Le dossier sélectionné est déjà présent dans la liste", MsgBoxStyle.Information, "BackUp - Information")
  421.                             Exit Sub
  422.                         End If
  423.                     Next
  424.                     ListDossiers.Items.Add(path)
  425.                 End If
  426.             Next
  427.         Catch ex As Exception
  428.             MsgBox("Une erreur est survenue lors de l'ajout du dossier, il ne sera pas ajouté à la liste des dossiers à sauvegarder", MsgBoxStyle.Critical, "Erreur")
  429.         End Try
  430.     End Sub
  431.  
  432. End Class
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement