none
Supprimer des fichiers lors de la fermeture de mon application RRS feed

  • Question

  • Bonsoir,

    J'aimerais supprimer des fichiers lors de la fermeture de mon application mais je ne sais pas comment procéder, pourriez-vous m'aider?

    Merci d'avance

    JPR

    mardi 24 juin 2014 14:55

Réponses

  • bonjour,

    vous enregistrez votre fichier dans ressource.

    voici comment envoyer votre fichier sur le Bureau:

    Private Sub Form1_Load(sender As System.Object, e As System.EventArgs) Handles MyBase.Load
            My.Computer.FileSystem.WriteAllText(My.Computer.FileSystem.SpecialDirectories.Desktop & "\teste.txt", My.Resources.teste, False)
        End Sub

    pour supprimer votre fichier au bout 2 second :

    If File.Exists("teste.txt") Then
                Threading.Thread.Sleep(2000) =>2000 milliseconds = 2 seconds
                File.Delete("teste.txt")
            End If

    j’espère, j'ai répondu a votre demande.

    cordialement,

    • Proposé comme réponse zorro591 vendredi 27 juin 2014 19:05
    • Marqué comme réponse Aurel Bera lundi 30 juin 2014 13:48
    mercredi 25 juin 2014 11:52

Toutes les réponses

  • Bonjour,

    Soyez conscient que pour être robuste, ce type de mécanique doit également faire une vérification au lancement de l'application. En effet, rien n'interdit un utilisateur de "tuer" un process.... Et rien ne garantie qu'il n'y ait pas un plantage qui vous empêche la suppression (par exemple quelqu'un qui ouvre vos fichiers avec le Notepad. La suppression ne marchera pas). Il vous faut donc, au lancement de l'application, vérifier la présence des fichiers qui auraient dû être supprimés puis les supprimer le cas échéant.

    Vous êtes en VB.NET, je vous suggère de faire un click droit sur votre projet puis d'aller dans ses propriétés. Vous verrez alors apparaître une zone "enable application framework" qui doit être cochée et un bouton "View Application Events".

    Cliquez sur ce bouton, en fonction de votre type d'application (je présuppose que c'est Winform ou WPF), une nouvelle fenêtre de code va s'ouvrir ; de nom ApplicationEvents.vb pour Winform et Application.xaml.vb pour WPF.

    Dans cette fenêtre de code, en haut à gauche apparaît une liste déroulante qui indiquera "(General)", "MyApplication", "Application" ou des choses du genre. Cliquez dans cette zone et sélectionnez "MyApplication Events" (Winform) ou "Application Events" (WPF).

    Dans la liste déroulante de droite, sélectionnez "Shutdown" pour Winform et "Exit" pour WPF.

    Tapez ensuite la ligne suivante :

    MessageBox.Show("Fermeture de l'application")

    Vous pouvez maintenant tester qu'à la fermeture de votre application une boite de dialogue s'affiche. C'est donc la zone où coder vos suppressions ^^...

    Dernière remarque, n'oubliez pas de tout coder dans un jolie Try Catch afin de permettre une fermeture propre de l'application.

    Bien cordialement,


    Fabrice JEAN-FRANCOIS




    mardi 24 juin 2014 16:25
  • Bonsoir et merci pour votre réponse, je suis bien en mode winform en vb.net, hélas "enable application framework" ne figure pas.

    N'y a-t-il pas un moyen plus simple de dire à mon programme : Quand je t'ouvre, dans le MyBase.Load tu vas chercher des fichiers dans tes ressources que tu envoyes sur le bureau, si je te ferme, les fichiers sur le bureau se suppriment directement sans confirmation ou quoi que ce soit d'autre.

    Merci de vos réponses.

    Cordialement,

    JPR

    mardi 24 juin 2014 16:44
  • En faite je me suis mal exprimé, je ne ferme pas l'application, je lance l'application, les fichiers dans les ressources de l'application sont envoyés sur le bureau, puis je marque 2 secondes de pause, puis au bout de ces 2 secondes de pause, les fichiers sont supprimés.

    Je ne vois pas comment réaliser celà ...

    JPR

    mardi 24 juin 2014 17:33
  • Bonjour,

    Est ce que tu peux être un peu plus précis, tes fichiers dans ta ressource, tu les copies ou tu les déplaces? et après tu veux supprimer quoi, les fichiers qui sont sur ton bureau ou dans ta base?

    ++

    mercredi 25 juin 2014 09:23
  • bonjour,

    vous enregistrez votre fichier dans ressource.

    voici comment envoyer votre fichier sur le Bureau:

    Private Sub Form1_Load(sender As System.Object, e As System.EventArgs) Handles MyBase.Load
            My.Computer.FileSystem.WriteAllText(My.Computer.FileSystem.SpecialDirectories.Desktop & "\teste.txt", My.Resources.teste, False)
        End Sub

    pour supprimer votre fichier au bout 2 second :

    If File.Exists("teste.txt") Then
                Threading.Thread.Sleep(2000) =>2000 milliseconds = 2 seconds
                File.Delete("teste.txt")
            End If

    j’espère, j'ai répondu a votre demande.

    cordialement,

    • Proposé comme réponse zorro591 vendredi 27 juin 2014 19:05
    • Marqué comme réponse Aurel Bera lundi 30 juin 2014 13:48
    mercredi 25 juin 2014 11:52
  • Bonjour Billiboy, Zorro591 a résolu mon problème, en faite il fallait juste que je vérifie si tel ou tel fichier existe et si tel est le cas, mon application supprime mon fichier au bout de x secondes.

    C'était vraiment tout bête, merci encore à tous pour votre aide. J'ai pu en apprendre d'avantage.

    Bonne soirée.

    Cordialement,

    JPR

    mercredi 25 juin 2014 16:07