Renomer un fichier sur cd.

Résolu
Marneus73 Messages postés 344 Date d'inscription mercredi 24 janvier 2007 Statut Membre Dernière intervention 27 octobre 2008 - 12 févr. 2007 à 13:22
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.

7 réponses

cs_fauve Messages postés 661 Date d'inscription vendredi 2 décembre 2005 Statut Membre Dernière intervention 23 mars 2011 8
12 févr. 2007 à 14:34
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
3
cs_casy Messages postés 7741 Date d'inscription mercredi 1 septembre 2004 Statut Membre Dernière intervention 24 septembre 2014 40
12 févr. 2007 à 13:51
et c'est quoi qui marche pas???

---- Sevyc64  (alias Casy) ----<hr size="2" width="100%" /># LE PARTAGE EST NOTRE FORCE #
0
Marneus73 Messages postés 344 Date d'inscription mercredi 24 janvier 2007 Statut Membre Dernière intervention 27 octobre 2008
12 févr. 2007 à 13:58
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 ???
0
cs_casy Messages postés 7741 Date d'inscription mercredi 1 septembre 2004 Statut Membre Dernière intervention 24 septembre 2014 40
12 févr. 2007 à 14:31
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 #
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
jmfmarques Messages postés 7666 Date d'inscription samedi 5 novembre 2005 Statut Membre Dernière intervention 22 août 2014 27
12 févr. 2007 à 21:53
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).
0
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:32
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.
0
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
Milles excuses Fauve !!! Je n'avait pas lu ton message, mais juste le dernier.
Encore une fois tu resous mon pb
Merci !!!
0
Rejoignez-nous