Macpurge (nouveaux algos pour les fichiers ... made in mac)

Soyez le premier à donner votre avis sur cette source.

Vue 4 654 fois - Téléchargée 393 fois

Description

Dans son ancienne version, MacPurge supprimait tous les fichiers du disque dur commençant par "._" ou se nommant ".DS_Store".
Par, je ne sais quel hasard, une personne nommerai un fichier important "._quelquechose", l'ancienne version le supprimerait.

Après avoir examiné ces fichiers générés, tous les fichiers ayant "._" contiennent de l'octet 8 au 16 la suite de caractères donnant : "Mac OS X".

J'ai donc rajouté une fonction permettant de définir si le fichier est créé par Mac OSX ou non.

Aussi, j'ai embelli le logiciel en le sortant du mode console pour lui donner une fenetre et un ensemble de commandes.

Toute la source de Mac Purge V2 se trouve dans le Zip.

Enfin, je vous présente dans la source, les algorithmes les plus importants du logiciel.

Source / Exemple :


public void DelMacFiles(DirectoryInfo[] dirinf)
        {
            NbFolderScan = NbFolderScan + dirinf.Length;
            foreach (DirectoryInfo d in dirinf)
            {
                try
                {
                    if (d.Name == ".Spotlight-V100")
                        d.Delete(true);
                    else
                    {
                        if (d.Name == ".Trashes")
                            d.Delete(true);
                        else
                        {
                            DelMacFiles(d);
                            DelMacFiles(d.GetDirectories());
                        }
                    }
                }
                catch (Exception)
                {
                    LIST_Erreur.Items.Add("Acces Impossible sur : " + d.FullName);
                }
            }
        }

        public void DelMacFiles(DirectoryInfo dir)
        {
            try
            {
                FileInfo[] files = dir.GetFiles();

                NbFilesScan = NbFilesScan + files.Length;

                int nbfic = files.Length;

                for (int i = 0; i < nbfic; i++)
                {

                    if (files[i].Name.Substring(0, 2) == "._" && ProcStat.IsMacFile(files[i]))
                    {
                        NbFilesDel++;
                        files[i].Delete();
                    }
                    else
                    {
                        if (files[i].Name == ".DS_Store")
                        {
                            NbFilesDel++;
                            files[i].Delete();
                        }
                    }

                }

            }
            catch (Exception)
            {
                LIST_Erreur.Items.Add("Acces Impossible sur : " + dir.FullName);
            }
        }

public static bool IsMacFile(FileInfo f)
        {
            string m = "Mac OS X";
            FileStream fs = f.OpenRead();
            byte[] b = new byte[8];

            fs.Position = 8;
            fs.Read(b, 0, 8);

            fs.Flush();
            fs.Close();

            return (Encoding.Default.GetString(b) == m);

        }

Conclusion :


Créé avec VS 2008, mais utilisant le DotNET 2.0

Merci de me faire part de vos réaction par rapport à cette nouvelle version.

PS : Le screen présenté à été pris lors de l'examen de mon disque dur externe (USB 2.0) et cet examen, malgré l'ajout d'une vérification en plus n'a duré que 2s.

Codes Sources

A voir également

Ajouter un commentaire

Commentaires

Messages postés
9
Date d'inscription
jeudi 3 juillet 2008
Statut
Membre
Dernière intervention
1 janvier 2009

Ok, j'en prend note pour la V4 (si les changements sont important) ;-)
Messages postés
5487
Date d'inscription
dimanche 4 août 2002
Statut
Modérateur
Dernière intervention
20 juin 2013
49
L'ancienne source a été supprimée, merci d'utiliser la fonction de mise à jour et de ne pas reposter chaque fois une nouvelle source

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.