IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

VB.NET Discussion :

[Mozilla Firefox] Atteindre les fichiers du cache


Sujet :

VB.NET

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé Avatar de max44410
    Étudiant
    Inscrit en
    Juin 2003
    Messages
    426
    Détails du profil
    Informations personnelles :
    Âge : 43

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2003
    Messages : 426
    Par défaut [Mozilla Firefox] Atteindre les fichiers du cache
    Bonjour,

    je voudrais savoir si il est possible d'obtenir l'url du cache (mozilla) de facon dynamique comme pour IE. pour IE j'utilise la ligne suivante :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Private DossierIE As String = Environment.GetFolderPath(SpecialFolder.InternetCache)
    Merci

  2. #2
    Membre éclairé Avatar de max44410
    Étudiant
    Inscrit en
    Juin 2003
    Messages
    426
    Détails du profil
    Informations personnelles :
    Âge : 43

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2003
    Messages : 426
    Par défaut
    j'ai bien trouvé des infos concernant le cache Firefox, mais je ne pense pas que je puisse m'en servir dynamiquement. par exemple mon répertoire de cache c'est :

    C:\Documents and Settings\user\Local Settings\Application Data\Mozilla\Firefox\Profiles\f9r3rjqv.default\Cache
    les caractère gras sont aléatoire il me semble. De plus les fichiers qui sont dans le répertoire cache ne sont pas exploitables car ils n'ont pas d'extention. il doit avoir un moyen d'y accéder autrement ou de déchiffrer ces fichiers car lorsque l'on tape about:cache?device=disk dans la barre d'adresse de firfox on obtiens toutes les informations sur les fichiers du caches.

    Est ce que quelqu'un a déjà bidouillé un truc comme ca ??

    Merci

  3. #3
    Expert confirmé
    Avatar de smyley
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    6 270
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 6 270
    Par défaut
    hum, j'avais eu un jour à obtenir le dossier de cache de firefox et j'avais fait comme ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
     
    try
                {
                    string dir = Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData)
                    + @"\Mozilla\Firefox\Profiles";
     
                    if (!Directory.Exists(dir))
                    {
                        Console.WriteLine("Dossier de Firefox introuvable");
                    }
     
                    string s_profile;
                    foreach (string dir_ in Directory.GetDirectories(dir))
                    {
                        s_profile = dir_;
     
                        if (!File.Exists(s_profile + "\\prefs.js"))
                        {
                            Console.WriteLine("Préférences introuvable pour le profile " + dir_);
                        }
                        else
                        {
                            string js = File.ReadAllText(s_profile + "\\prefs.js", Encoding.Default);
                            int idx = js.IndexOf("browser.cache.disk.parent_directory");
                            if (idx < 0)
                            {
                                Console.WriteLine("Cache non définis pour " + dir_);
                            }
                            else
                            {
                                idx = idx + "browser.cache.disk.parent_directory".Length + 1;
                                string val = null;
                                while (js.Length > idx)
                                {
                                    if (val == null)
                                    {
                                        if (js[idx] == '\"')
                                            val = "";
                                    }
                                    else if (js[idx] == '\"')
                                    {
                                        if (val.Length > 0 && val[val.Length - 1] == '\\')
                                            val += "\"";
                                        else
                                            break;
                                    }
                                    else if (js[idx] == '\\')
                                    {
                                        if (js[idx + 1] == '\\')
                                        {
                                            val += "\\";
                                            idx++;
                                        }
                                        else
                                            throw new InvalidOperationException("Profile : " + dir_ + ", chemin non supporté");
     
                                    }
                                    else
                                        val += js[idx];
     
                                    idx++;
                                }
     
                                Console.WriteLine(String.Format("Profile {0}, dossier : {1}",
                                    dir_, val));
                            }
                        }
                    }
                }
                catch (Exception ex)
                {
                    Console.WriteLine(ex.ToString());
                }

  4. #4
    Membre Expert
    Avatar de Aspic
    Homme Profil pro
    Étudiant
    Inscrit en
    Août 2005
    Messages
    3 905
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Août 2005
    Messages : 3 905
    Par défaut
    Ce qui donne en VB.NET :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    Try 
        Dim dir As String = (Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData) + "\Mozilla\Firefox\Profiles")
        If Not Directory.Exists(dir) Then
            Console.WriteLine("Dossier de Firefox introuvable")
        End If
        Dim s_profile As String
        For Each dir_ As String In Directory.GetDirectories(dir)
            s_profile = dir_
            If Not File.Exists((s_profile + "\\prefs.js")) Then
                Console.WriteLine(("Pr�f�rences introuvable pour le profile " + dir_))
            Else
                Dim js As String = File.ReadAllText((s_profile + "\\prefs.js"), Encoding.Default)
                Dim idx As Integer = js.IndexOf("browser.cache.disk.parent_directory")
                If (idx < 0) Then
                    Console.WriteLine(("Cache non d�finis pour " + dir_))
                Else
                    idx = (idx  _
                                + ("browser.cache.disk.parent_directory".Length + 1))
                    Dim val As String = Nothing
     
                    While (js.Length > idx)
                        If (val = Nothing) Then
                            If (js(idx) = Microsoft.VisualBasic.ChrW(92)) Then
                                val = ""
                            End If
                        ElseIf (js(idx) = Microsoft.VisualBasic.ChrW(92)) Then
                            If ((val.Length > 0)  _
                                        AndAlso (val((val.Length - 1)) = Microsoft.VisualBasic.ChrW(92))) Then
                                val = (val + "\""")
                            Else
                                'TODO: Warning!!! break;Else
                            End If
                        ElseIf (js(idx) = Microsoft.VisualBasic.ChrW(92)) Then
                            If (js((idx + 1)) = Microsoft.VisualBasic.ChrW(92)) Then
                                val = (val + "\\")
                                idx = (idx + 1)
                            Else
                                Throw New InvalidOperationException(("Profile : "  _
                                                + (dir_ + ", chemin non support�")))
                            End If
                        Else
                            val = (val + js(idx))
                        End If
                        idx = (idx + 1)
     
                    End While
                    Console.WriteLine(String.Format("Profile {0}, dossier : {1}", dir_, val))
                End If
            End If
        Next
    Catch ex As Exception
        Console.WriteLine(ex.ToString)
    End Try
    Tu auras sans doute quelques modifs à faire car c'est un traducteur et il faut pas faire confiance
    Qui ne tente rien n'a rien !
    Ce qui ne nous tue pas nous rends plus fort !!
    Mon projet ZELDA en C++/Allegro
    http://www.tutoworld.com - Le Forum -
    Mes ressources Dotnet (cours, sources, tutos)
    --------------------------------------------
    + + =

    Ne pas oublier le Tag !

  5. #5
    Membre éclairé Avatar de max44410
    Étudiant
    Inscrit en
    Juin 2003
    Messages
    426
    Détails du profil
    Informations personnelles :
    Âge : 43

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2003
    Messages : 426
    Par défaut
    ok, merci Aspic pour la convertion en VB .NET je venais juste de la finir quand j'ai vu que tu avais posté.

    Sinon ca fonctionne pas encore super bien. d'autant plus que par défaut il n'y a pas d'entrée browser.cache.disk.parent_directory dans le fichier prefs.js.

    Bref je peux me débrouilller je pense avec cela, mais un autre gros problème s'annonce... en effet le cache Firefox est comme qui dirait crypté. Enfin en tout cas il en a tout l'air. j'ai fait pas mal de recherche sur le sujet mais j'avoue que je n'ai pas trouvé grand chose d'intéressant. il existe pourtant un plugin Firefox appeler cacheViewer, mais je ne sais pas comment il fonctionne.

    J'émets une hypothèse qui est la suivante : lors du démarage de Firefox, le cache est chargé en mémoire afin d'accélérer l'accès. le programme cacheViewer regarde dans la mémoire de firefox pour voir ce qu'il y trouve. je remet très fortement mon hypothèse en question à savoir qu'il est difficile d'imaginer par expemple le chargement de 500 Mo de cache en mémoire.

    je vais télécharger les source FireFox pour voir comment est gérer le about:cache. ce n'est pas gagné je préfère prévenir.

    J'ai également vu pas mal d'article parlant de XUL Cache, je ne sais pas trop à quoi cela correspond. Il y a très peu d'information sur la gestion du cache firefox sur internet.

    Merci de partager avec moi les informations que vous avez... si vous en avez.

    Maxwell

  6. #6
    Membre éclairé Avatar de max44410
    Étudiant
    Inscrit en
    Juin 2003
    Messages
    426
    Détails du profil
    Informations personnelles :
    Âge : 43

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2003
    Messages : 426
    Par défaut
    j'ai téléchargé les sources, j'ai commencé à regarder un peu partout. j'ai vu que FF utilisait SQLite pour stocker des informations. je ne sais pas encore quoi. j'aurrais bien voulu me connecter a cette base, mais je n'arrive pas à trouvé ou est située la connection :

    dans le fichier mozSqlConnectionSqlite.cpp
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    mozSqlConnectionSqlite::Init(const nsAString& aHost,
                                 PRInt32 aPort,
                                 const nsAString& aDatabase,
                                 const nsAString& aUsername,
                                 const nsAString& aPassword)
    Ce serait vraiment super si yavait déjà quelqu'un qui s'était penché sur le problème et serait m'expliquer comment est géré le cache mozilla. merci

    PS : un lien intéressant

Discussions similaires

  1. Les images ne s'affiche plus dans Mozilla Firefox
    Par sondo dans le forum Windows XP
    Réponses: 17
    Dernier message: 19/11/2008, 22h46
  2. Réponses: 0
    Dernier message: 06/05/2008, 13h39
  3. Réponses: 8
    Dernier message: 06/12/2007, 19h55
  4. Comment visualiser les plugins sous Mozilla Firefox 2.0
    Par Olivier Regnier dans le forum Firefox
    Réponses: 1
    Dernier message: 10/11/2006, 00h17
  5. Afficher les fichiers cachés avec apache ?
    Par Michaël dans le forum Apache
    Réponses: 2
    Dernier message: 20/12/2004, 09h56

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo