Renomer un fichier sur cd. [Résolu]

Messages postés
344
Date d'inscription
mercredi 24 janvier 2007
Statut
Membre
Dernière intervention
27 octobre 2008
- - Dernière réponse : Marneus73
Messages postés
344
Date d'inscription
mercredi 24 janvier 2007
Statut
Membre
Dernière intervention
27 octobre 2008
- 13 févr. 2007 à 21:39
Bonjour à tous
Petite problème: J'ai besoin de copier et de renommer un fichier. Pour cela, j'utilise ça:

                        My.Computer.FileSystem.CopyFile( _
                        "C:\Documents and Settings\???\Bureau\lisez moi.txt", _
                        "C:\Documents and Settings\???\Bureau\h\lisez moi 2.txt", _
                       FileIO.UIOption.AllDialogs, _
                       FileIO.UICancelOption.DoNothing)

Le seul probleme est que le fichier à copier et à renommer est sur un CD! Pour ouvrir un fichier sur un CD sans connaitre la lettre du lecteur, j'utilise:

                Imports System.IO   -------------> A mettre au sommet avant 'Public Class Form1'
                Public Class Form1
                Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As                                        System.EventArgs) Handles Button1.Click
                Dim chemin As String = "setup.exe(Chemin Fichier)"
                Dim process As New Process
                For Each disque As String In Directory.GetLogicalDrives()
                Dim D As New DriveInfo(disque)
                If D.DriveType = DriveType.CDRom Then
                Try
                If My.Computer.FileSystem.FileExists(disque + chemin) = True Then
                process.StartInfo.FileName = disque + chemin
                process.Start()
                End If
                Catch ex As Exception
                MsgBox(ex.Message)
                End Try
                End If
                Next
                End Sub
                End Class
            
J'ai donc essayé de compiler les deux codes et ça ne marche absolument pas !
Pouvez vous m'aider ???
Merci d'avance.
Afficher la suite 

7 réponses

Meilleure réponse
Messages postés
661
Date d'inscription
vendredi 2 décembre 2005
Statut
Membre
Dernière intervention
23 mars 2011
8
3
Merci
Salut,

Imports System.IO   ' -------------> A mettre au sommet avant 'Public Class Form1'
Public Class Form1

   Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
      Dim chemin As String = "lisez-moi.txt"  ' Fichier devant être copié et renommé

      For Each disque As String In Directory.GetLogicalDrives() ' Parcours tous les disques logiques présents sur la machine
         Dim D As New DriveInfo(disque)   ' Instancie ce disque pour obtenir des infos
         If D.DriveType = DriveType.CDRom Then   ' Vrai si le disque est un CD-Rom
            Try   ' Intercepte une erreur éventuelle
               If My.Computer.FileSystem.FileExists(disque + chemin) = True Then   ' Vrai si le fichier existe
                  Dim sNom As String = disque+chemin
                  Dim Fi As FileInfo
                  Fi=New FileInfo( sNom)   ' Instancie le fichier trouvé
                  My.Computer.FileSystem.CopyFile(disque+chemin,"C:"+Fi.Name)   ' Copie le fichier du CD vers ' C:\lisez-moi.txt '
                  My.Computer.FileSystem.RenameFile("C:"+Fi.Name,"lisez-moi(2).txt")   ' Renomme le fichier ' C:\lisez-moi.txt ' en ' C:\lisez-moi(2).txt '
              End If
               Catch ex As Exception    ' Permet d'intercepter une erreur et de la traiter
                   MsgBox(ex.Message)   ' Affichage d'un message à l'utilisateur du type d'erreur
            End Try
         End If
      Next
   End Sub
End Class

N'oubliez pas d'accepter la réponse si elle a reglé votre problème

Dire « Merci » 3

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources 132 internautes nous ont dit merci ce mois-ci

Commenter la réponse de cs_fauve
Messages postés
7745
Date d'inscription
mercredi 1 septembre 2004
Statut
Membre
Dernière intervention
24 septembre 2014
28
0
Merci
et c'est quoi qui marche pas???

---- Sevyc64  (alias Casy) ----<hr size="2" width="100%" /># LE PARTAGE EST NOTRE FORCE #
Commenter la réponse de cs_casy
Messages postés
344
Date d'inscription
mercredi 24 janvier 2007
Statut
Membre
Dernière intervention
27 octobre 2008
0
Merci
Salut
En fait en remplaçant le second code dans le premier, VB me signale plein d'erreures.
Comment je peut faire pour que la cible du premier chemin demandé soit le fichier sur le CD ???
Commenter la réponse de Marneus73
Messages postés
7745
Date d'inscription
mercredi 1 septembre 2004
Statut
Membre
Dernière intervention
24 septembre 2014
28
0
Merci
Je suis bien d'accord, mais tout ça ne 'en dit pas plus sur ton problème

Sur le principe du remplacement de code, ça devrait donner à quelques détail près un code comme ceci :

               Imports System.IO   -------------> A mettre au sommet avant 'Public Class Form1'
                Public Class Form1
   
            Private Sub Button1_Click(ByVal sender As System.Object,
ByVal e As                                        System.EventArgs)
Handles Button1.Click
                Dim chemin As String = "setup.exe(Chemin Fichier)"
                Dim process As New Process
                For Each disque As String In Directory.GetLogicalDrives()
                Dim D As New DriveInfo(disque)
                If D.DriveType = DriveType.CDRom Then
                Try
                       My.Computer.FileSystem.CopyFile( disque & chemin, _
                        "C:\Documents and Settings\???\Bureau\h\lisez moi 2.txt", _
                       FileIO.UIOption.AllDialogs, _
                       FileIO.UICancelOption.DoNothing)
                Catch ex As Exception
                MsgBox(ex.Message)
                End Try
                End If
                Next
                End Sub
                End Class

---- Sevyc64  (alias Casy) ----<hr size="2" width="100%" /># LE PARTAGE EST NOTRE FORCE #
Commenter la réponse de cs_casy
Messages postés
7668
Date d'inscription
samedi 5 novembre 2005
Statut
Membre
Dernière intervention
22 août 2014
18
0
Merci
Je m 'attendais quand même à ce que l'on s'assure de ce qu'il s'agit bien d'un CD  directement modifiable en écriture (il est en effet dit "renommer" dans le 1er message), ce qui n'est pas le cas de tous les CD ni, pour ceux réinscriptibles, s"ils n'ont pas été "préparés" à cette fin (et donc traitables comme n'importe quel autre volume).
Commenter la réponse de jmfmarques
Messages postés
344
Date d'inscription
mercredi 24 janvier 2007
Statut
Membre
Dernière intervention
27 octobre 2008
0
Merci
Bon je ne crois pas que vous avez bien compris mon probleme:
Mon but est de copier des fichiers contenus sur le CD dans un repertoire sur le disque dur, puis de les renomer.
Pour copier des fichiers d'un repertoire du disque dur vers un autre repertoire du disque dur j'utilise la fonction:

My.Computer.FileSystem.CopyFile( _
                        "C:\Documents and Settings\???\Bureau\lisez moi.txt", _
                        "C:\Documents and Settings\???\Bureau\h\lisez moi 2.txt", _
                       FileIO.UIOption.AllDialogs, _
                       FileIO.UICancelOption.DoNothing)

Et pour ouvrir un fichier contenu sur un CD j'utilise:

Imports System.IO   -------------> A mettre au sommet avant 'Public Class Form1'
                Public Class Form1
   
            Private Sub Button1_Click(ByVal sender As System.Object,
ByVal e As System.EventArgs)
Handles Button1.Click
                Dim chemin As String = "setup.exe(Chemin Fichier)"
                Dim process As New Process
                For Each disque As String In Directory.GetLogicalDrives()
                Dim D As New DriveInfo(disque)
                If D.DriveType = DriveType.CDRom Then
                Try
                If My.Computer.FileSystem.FileExists(disque + chemin) = True Then
                process.StartInfo.FileName = disque + chemin
                process.Start()
                End If
                Catch ex As Exception
                MsgBox(ex.Message)
                End Try
                End If
                Next
                End Sub
                End Class

Mon probleme est  pour remplacer le premier chemin demandé dans la premiere fonction("C:\Documents and Settings\???\Bureau\lisez moi.txt"), car les lettres des lecteurs CD varient en fonction des PC.
Voila je pense avoir été clair.
Excusez moi de m'etre mal exprimé la premiere fois.
Commenter la réponse de Marneus73
Messages postés
344
Date d'inscription
mercredi 24 janvier 2007
Statut
Membre
Dernière intervention
27 octobre 2008
0
Merci
Milles excuses Fauve !!! Je n'avait pas lu ton message, mais juste le dernier.
Encore une fois tu resous mon pb
Merci !!!
Commenter la réponse de Marneus73