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 :

Copier un fichier VB


Sujet :

VB.NET

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Décembre 2007
    Messages
    42
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Technicien maintenance

    Informations forums :
    Inscription : Décembre 2007
    Messages : 42
    Par défaut Copier un fichier VB
    Bonjour

    je n'arrive pas à faire une copie d'un fichier pour le mettre dans le dossier que l'utilisateur a sélectionner, après plusieurs essais rien ne fais.
    Je suis sous Win 7 64bits.

    voici mon code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    'copie du fichier nécessaire au fonctionnement du plugins TWAIN. ( scanner )
     
            Dim source As String = "./DLL/" 'dossier source ou ce trouve le fichier a copier
            Dim destination As String = FolderBrowserDialog1.ShowDialog() = DialogResult.OK 'dossier choisi par l'utilisateur
            If Windows.Forms.DialogResult.OK = Windows.Forms.DialogResult.Cancel Then
            My.Computer.FileSystem.CopyDirectory(source, FolderBrowserDialog1.SelectedPath, True)
            End If
    mais cela ne fais rien, j'ai essayé ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Dim oFSO = CreateObject("Scripting.FileSystemObject")
            oFSO.CopyFile("./DLL/", "c:/01/", True)
    et cela me donne une erreur " Exception de HRESULT : 0x800A0005 (CTL_E_ILLEGALFUNCTIONCALL)"

    Merci pour l'aide,
    Cordialement

  2. #2
    Membre Expert
    Avatar de Sehnsucht
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Octobre 2008
    Messages
    847
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Lot et Garonne (Aquitaine)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Octobre 2008
    Messages : 847
    Par défaut
    destination ne vaut pas ce que tu penses (et si Option Strict était activée le compilo te l'aurait dit)
    En effet tu assignes à cette variable le résultat de ceci : FolderBrowserDialog1.ShowDialog() = Dialogesult.OK soit le résultat du test d'égalité entre les 2 valeurs (donc soit True, soit False) à partir de là il y a pas de chance que l'un ou l'autre représente le chemin que tu souhaitais :

    ce que tu cherches réellement à faire c'est "si le showdialog m'a renvoyée ok alors j'assigne à destination le chemin sélectionné par le FolderBrowserDialog et je fais la copie"


    Edit : bon faites comme si j'avais rien dit j'avais pas vu que destination n'était même pas utilisé et ça m'a induit en erreur (moralité ne pas regarder du code pendant le digestion )

    par contre tu compare DialogResult.OK avec DialogResult.Cancel au lieu de comparer ce que te renvoie ShowDialog avec l'un ou l'autre du coup l'égalité ne sera jamais vraie et tu n'entreras donc jamais dans le If

  3. #3
    Membre très actif
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2007
    Messages
    871
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Février 2007
    Messages : 871
    Par défaut
    Salut,

    Pour les versions recentes de windows, plein de repertoires sont proteges et seul le repertoire application data est autorise a l'ecriture.

    • Donc soit tu lance ton programmes en admin
    • soit tu utilises un repertoire n'ayant pas besoin de droits admin

  4. #4
    Membre averti
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Décembre 2007
    Messages
    42
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Technicien maintenance

    Informations forums :
    Inscription : Décembre 2007
    Messages : 42
    Par défaut
    Bonjour

    Merci pour vos réponses , je vais essayer de suivre cette piste "Sehnsucht" . mon dossier doit être copier soit dans " System32 " ou " SysWow64 ".
    du coup je serait bloquer alors ?

    cordialement

  5. #5
    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
    Citation Envoyé par AcideBlood Voir le message
    Bonjour

    Merci pour vos réponses , je vais essayer de suivre cette piste "Sehnsucht" . mon dossier doit être copier soit dans " System32 " ou " SysWow64 ".
    du coup je serait bloquer alors ?

    cordialement
    Bonjour,

    Oui tu seras bloqués donc il faut surtout suivre le conseil de mermich () concernant la problématique des droits lorsque tu souhaiteras accéder en écriture au contenu des répertoires système de l'OS !

    Modifier le Manifest d'application

    A+

  6. #6
    Membre averti
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Décembre 2007
    Messages
    42
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Technicien maintenance

    Informations forums :
    Inscription : Décembre 2007
    Messages : 42
    Par défaut
    Bonjour

    C'est bon sa marche du moins la copie , mais pas pour les dossiers Syswow64 et system32 . j'ai bien changé le manifest mais sa marche pas. je suis en administrateur.

    par contre je peut plus tester l'application j'ai ce message d'erreur :
    Erreur ClickOnce ne prend pas en charge le niveau d'exécution de la demande 'requireAdministrator'.


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    Dim source As String = "./DLL/" 'dossier source ou ce trouve le fichier a copier
            Dim destination As String = FolderBrowserDialog1.ShowDialog() = DialogResult.OK 'dossier choisi par l'utilisateur
            If DialogResult.OK = DialogResult.OK Then
                My.Computer.FileSystem.CopyDirectory(source, FolderBrowserDialog1.SelectedPath, True)
            End If

Discussions similaires

  1. copier des fichiers
    Par Daeron dans le forum Général JavaScript
    Réponses: 6
    Dernier message: 24/11/2004, 14h45
  2. Copier certains fichiers d'une arborescence ?
    Par narmataru dans le forum Linux
    Réponses: 4
    Dernier message: 27/04/2004, 12h15
  3. Copier coller Fichier windows
    Par KPitN dans le forum Windows
    Réponses: 8
    Dernier message: 20/04/2004, 17h32
  4. Batch pour copier des fichier
    Par borgfabr dans le forum Scripts/Batch
    Réponses: 3
    Dernier message: 09/03/2004, 07h55
  5. Détourner une fonction pour copier un fichier en mémoire
    Par Rodrigue dans le forum C++Builder
    Réponses: 6
    Dernier message: 12/11/2003, 08h29

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