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 :

vb.net Copier un fichier provenant des ressources sur le bureau de tous les utilisateurs. [Débutant]


Sujet :

VB.NET

  1. #1
    Membre actif
    Homme Profil pro
    Étudiant
    Inscrit en
    Décembre 2017
    Messages
    29
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Décembre 2017
    Messages : 29
    Par défaut vb.net Copier un fichier provenant des ressources sur le bureau de tous les utilisateurs.
    Bonjour à tous,
    j'aimerais copier un fichier - provenant des ressources - sur le bureau pour tous les utilisateurs. J'ai testé ces 2 lignes de codes, mais elles ne fonctionnent pas (il me semble que WriteAllBytes ne développe pas les variables d'environnement). Je ne connais pas la bonne formule.
    Merci pour votre aide.
    (Fichier txt dans les ressources.)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    WriteAllBytes("C:\Users\%UserName%\Desktop\Fichier.txt",My.Resources.Fichier.txt)
    WriteAllBytes("C:\Users\%UserProfile%\Desktop\Fichier.txt",My.Resources.Fichier.txt)

  2. #2
    Membre éprouvé
    Homme Profil pro
    Étudiant
    Inscrit en
    Janvier 2018
    Messages
    323
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2018
    Messages : 323
    Par défaut
    Bonsoir,

    vous pouvez faire ceci pour copier le fichier texte dans My.Resources sur le bureau :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    File.WriteAllBytes(Path.Combine(My.Computer.FileSystem.SpecialDirectories.Desktop, "Fichier.txt"), System.Text.Encoding.UTF8.GetBytes(My.Resources.fichier_test))
    Cordialement,

  3. #3
    Membre Expert
    Avatar de wallace1
    Homme Profil pro
    Administrateur systèmes
    Inscrit en
    Octobre 2008
    Messages
    1 966
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : Administrateur systèmes
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Octobre 2008
    Messages : 1 966
    Billets dans le blog
    7
    Par défaut
    Bonsoir,

    Le bureau de tous les utilisateurs :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Dim AllUsersDesktop As String = System.Environment.GetFolderPath(Environment.SpecialFolder.CommonDesktopDirectory)

  4. #4
    Membre actif
    Homme Profil pro
    Étudiant
    Inscrit en
    Décembre 2017
    Messages
    29
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Décembre 2017
    Messages : 29
    Par défaut
    Merci à vous deux de me répondre (Miska59 et Wallace1). Si j’essaie cette déclaration : Dim AllUsersDesktop As String, quel code j'associe pour copier le fichier texte se trouvant dans les ressources ?

  5. #5
    Expert confirmé
    Avatar de popo
    Homme Profil pro
    Analyste programmeur Delphi / C#
    Inscrit en
    Mars 2005
    Messages
    2 930
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Analyste programmeur Delphi / C#
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2005
    Messages : 2 930
    Par défaut
    WriteAllBytes ne fonctionne plus ?

  6. #6
    Membre actif
    Homme Profil pro
    Étudiant
    Inscrit en
    Décembre 2017
    Messages
    29
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Décembre 2017
    Messages : 29
    Par défaut Réponse à Popo
    Oui, en VB.net, WriteAllBytes ne développe pas les variables d'environnement.

  7. #7
    Expert confirmé
    Avatar de popo
    Homme Profil pro
    Analyste programmeur Delphi / C#
    Inscrit en
    Mars 2005
    Messages
    2 930
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Analyste programmeur Delphi / C#
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2005
    Messages : 2 930
    Par défaut
    C'est une question rhétorique en réponse à une question que tu as posé et dont tu connais déjà la réponse.

    AllUsersDesktop contient le chemin vers le Bureau.
    WriteAllBytes prends en paramètre un chemin (comme par hasard ).

    Prend le temps de la réflexion et la réponse te semblera évidente.

  8. #8
    Membre actif
    Homme Profil pro
    Étudiant
    Inscrit en
    Décembre 2017
    Messages
    29
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Décembre 2017
    Messages : 29
    Par défaut Copier un fichier sur le bureau pour tous les utilisateurs.
    Citation Envoyé par popo Voir le message
    C'est une question rhétorique en réponse à une question que tu as posé et dont tu connais déjà la réponse.

    AllUsersDesktop contient le chemin vers le Bureau.
    WriteAllBytes prends en paramètre un chemin (comme par hasard ).

    Prend le temps de la réflexion et la réponse te semblera évidente.
    Après réflexion, mes 80 milliards de neurones m'ont retourné cette ligne de codes :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    WriteAllBytes("C:\Users\Public\Desktop\Fichier.txt", My.Resources.Fichier.txt)
    Pour ceux que ça intéresse, elle fonctionne parfaitement.

  9. #9
    Expert confirmé
    Avatar de popo
    Homme Profil pro
    Analyste programmeur Delphi / C#
    Inscrit en
    Mars 2005
    Messages
    2 930
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Analyste programmeur Delphi / C#
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2005
    Messages : 2 930
    Par défaut
    L'idée était que tu réfléchisse à une solution utilisant AllUsersDesktop.

    Mettre un chemin en dur, c'est rarement une bonne idée.
    Image que Microsoft décide pour Windows 12 (ce serait pas la première fois que ça arrive) de tout révolutionner et de définir le Bureau sur C:\AllUsers\Desktop.
    Ton programme ne fonctionnera pas sur cet OS.

    Nous t'avons donné tout ce dont tu as besoin.
    • wallace1 t'a fourni le code pour aller chercher le chemin vers le bureau et la fameuse variable AllUsersDesktop.
    • Miska59 t'a fourni la méthode Path.Combine pour concaténer ce chemin avec le nom du fichier à créer.
    • Et tu connais déjà WriteAllBytes.


    La solution la plus pérenne réside dans l'utilisation de ces 3 informations.

  10. #10
    Membre actif
    Homme Profil pro
    Étudiant
    Inscrit en
    Décembre 2017
    Messages
    29
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Décembre 2017
    Messages : 29
    Par défaut
    Évidemment. Je vais essayer de suivre tes recommandations en évitant de me prendre les pieds dans le tapis.

  11. #11
    Membre actif
    Homme Profil pro
    Étudiant
    Inscrit en
    Décembre 2017
    Messages
    29
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Décembre 2017
    Messages : 29
    Par défaut
    Merci à vous tous, cette commande fonctionne parfaitement.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    WriteAllBytes(Path.Combine(My.Computer.FileSystem.SpecialDirectories.Desktop, "Fichier.txt"), My.Resources.Fichier.txt)

  12. #12
    Expert confirmé
    Avatar de popo
    Homme Profil pro
    Analyste programmeur Delphi / C#
    Inscrit en
    Mars 2005
    Messages
    2 930
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Analyste programmeur Delphi / C#
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2005
    Messages : 2 930
    Par défaut
    Si ton objectif est bien de copier sur le bureau pour tous les utilisateurs (tu l'a même mis en gras), alors ce code ne fait pas ce que tu veux.
    Mais tu es sur la bonne voie.

    Tu as déjà bien utilisé WriteAllBytes et Path.Combine.
    Ne reste plus qu'à utiliser le bon chemin, celui dans AllUsersDesktop.

  13. #13
    Membre actif
    Homme Profil pro
    Étudiant
    Inscrit en
    Décembre 2017
    Messages
    29
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Décembre 2017
    Messages : 29
    Par défaut
    Pourtant, lorsque je lance mon programme avec cette commande, mon "Fichier.txt" - provenant des ressources - s'affiche bien sur le bureau de mon PC. J'imagine qu'il doit bien s'afficher sur le PC d'un autre utilisateur, vrai ou pas ?

  14. #14
    Expert confirmé
    Avatar de popo
    Homme Profil pro
    Analyste programmeur Delphi / C#
    Inscrit en
    Mars 2005
    Messages
    2 930
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Analyste programmeur Delphi / C#
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2005
    Messages : 2 930
    Par défaut
    Il est logique que ça marche sur ton poste puisque tu as ouvert une session dessus avec ton propre compte !

    Affiche le contenu de My.Computer.FileSystem.SpecialDirectories.Desktop et tu verras ce qu'il en est réellement.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    Dim AllUsersDesktop As String = System.Environment.GetFolderPath(Environment.SpecialFolder.CommonDesktopDirectory)
     
    Console.WriteLine(My.Computer.FileSystem.SpecialDirectories.Desktop)
    Console.WriteLine(AllUsersDesktop)
     
    Console.ReadKey()
    Edit :
    Après c'est une question de terminologie.
    Avec ton code actuel, le fichier sera copié sur le bureau d'un utilisateur uniquement s'il utilise lui-même ton programme avec son compte.
    En utilisant AllUsersDesktop, le fichier sera copié sur le bureau de tous les utilisateurs même s'ils n'ont jamais utilisé ton programme.

  15. #15
    Membre actif
    Homme Profil pro
    Étudiant
    Inscrit en
    Décembre 2017
    Messages
    29
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Décembre 2017
    Messages : 29
    Par défaut
    Dans mon projet, les utilisateurs lanceront mon programme à partir de leur PC. Donc, en comprenant les différences que tu évoques, ma ligne de codes fonctionnera bien sur le PC des autres utilisateurs.
    Je vais tester AllUsersDesktopen suivant ton code, comme cela j'aurai un aperçu du résultat.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 10
    Dernier message: 02/10/2013, 00h03
  2. Réponses: 0
    Dernier message: 24/04/2012, 21h30
  3. Réponses: 1
    Dernier message: 14/11/2009, 23h43
  4. Forcer la libération des ressources sur un fichier
    Par piotrr dans le forum Général Dotnet
    Réponses: 0
    Dernier message: 24/06/2009, 13h59
  5. Réponses: 4
    Dernier message: 07/06/2006, 14h59

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