Accéder à un fichier de Appdata

Fermé
turgodi - 25 juin 2014 à 21:08
 turgodi - 25 juin 2014 à 22:01
Hello, je souhaiterais utiliser un fichier qui est dans appdata, mais le dossier a un nom aléatoire qui change tout le temps du style :
Pendant 10min : Jeu\378\dossier\Monfichier.txt
Puis 10min après : Jeu\281\dossier\Monfichier.txt

Voici mon code actuel :

...etc(Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData) + "Jeu\" + "dossier\Monfichier.txt")

Merci.

Mais cela ne marche pas à moins que je mette l'adresse complète du fichier...
A voir également:

2 réponses

ElementW Messages postés 4816 Date d'inscription dimanche 12 juin 2011 Statut Contributeur Dernière intervention 5 octobre 2021 1 228
Modifié par gravgun le 25/06/2014 à 22:01
'lut,
chemin + "\machin" + truc
...
Grrrrrrrrrrrrrr!!! Path.Combine, mince!
Ça existe pas pour rien, et je te conseille de considérer tout ajout de chemins avec
+
et des séparateurs (
\
ou
/
) codés en dur comme une hyper mega très mauvaise pratique. Utilise Path.Combine pour tous tes chemins, et si tu as besoin du caractère séparateur, Path.DirectorySeparatorChar.
Ta ligne devient donc
...etc(Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData), "Jeu", "dossier", "Monfichier.txt"))

from human import idiocy
del idiocy
1
Merci pour ta réponse, je ne connaissais pas, c'est super.
Malheuresement j'ai encore une erreur, pourrais tu m'aider encore une fois ?
Voici tous les détails qui te sont nécéssaires :

Code actuel :
Dim lolol As Net.Mail.Attachment = New Net.Mail.Attachment(Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData), "Macromedia", "monfichier.txt"))
MyMailMessage.Attachments.Add(lolol)

Et pour que tu comprennes mieux voici le chemin complet avec entre parenthèses la partie qui change tout le temps :

C:\Users\MonNom\AppData\Roaming\Macromedia\Flash Player\#SharedObjects\(B3A8LUQY)\www.realmofthemadgod.com\monfichier.txt

Merci encore
0
ElementW Messages postés 4816 Date d'inscription dimanche 12 juin 2011 Statut Contributeur Dernière intervention 5 octobre 2021 1 228
Modifié par gravgun le 25/06/2014 à 21:47
Le chemin que tu fournis n'est pas complet,
Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData)
donne le
C:\Users\MonNom\AppData\Roaming
, tu mets le
"Macromedia"
, mais il manque toute la partie
#SharedObjects\(B3A8LUQY)\www.realmofthemadgod.com\
.
Le hic en plus c'est que Path.Combine ne prend que jusqu'à 4 paramètres (alors qu'il aurait très bien pu en prendre une infinité grâce aux listes de paramètres), donc il faut imbriquer...
Le "B3A8LUQY" change tout le temps?
Il faut jouer plus sophistiqué: on va devoir inspecter chaque dossier de #SharedObjects, et vérifier s'il contient
www.realmofthemadgod.com\monfichier.txt
Je rédige le code, je l'enverrais dans un prochain commentaire...
0
Oui c'est ça, c'est le problème, le chemin n'est jamais le même et je n'arrive pas à instaurer une recherche pour trouver mon fichier dans appdata non plus...
Merci encore, vous êtes très aimable
0
ElementW Messages postés 4816 Date d'inscription dimanche 12 juin 2011 Statut Contributeur Dernière intervention 5 octobre 2021 1 228
25 juin 2014 à 21:55
Voilà, ceci devrait trouver le bon chemin et le stocker dans
chemin
:
Dim chemin As String
For Each dir As String In Directory.GetDirectories(Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData),
        "Macromedia", "Flash Player", "#SharedObjects"))
    chemin = Path.Combine(dir, "www.realmofthemadgod.com", "monfichier.txt")
    If File.Exists(chemin) Then
        Exit For 'On arrête la boucle car on a trouvé
    End If
Next
Après, on adapte:
Dim lolol As Net.Mail.Attachment = New Net.Mail.Attachment(chemin)
MyMailMessage.Attachments.Add(lolol)
0
ça marche, ça m'a beaucoup appris, merci d'avoir pris votre temps pour m'aider
Bonne soirée et bonne continuation
0