none
Besoin d'aide pour de la copie de fichiers

    Discussion générale

  • Bonjour,

    J'ai un programme qui doit permettre à ses utilisateurs de copier des dossiers ainsi que leurs sous-dossiers sur un serveur, pour les laisser définir le dossier de départ et de destination, j'ai utilisé une FolderBrowserDialog reliée à une TextBox qui affiche l'adresse des dossiers une fois qu'ils sont choisis.

    Je n'arrive pas à déterminer comment effectuer la copie lorsque que l'utilisateur appuie sur un bouton Copier depuis les dossiers définis auparavant, comment cela fonctionne-t-il?


    mercredi 18 janvier 2017 17:08

Toutes les réponses

  • Bonjour,

    Vous pouvez faire quelque chose comme ça

    string[] lstFich = System.IO.Directory.GetFiles(p_Origine);
    foreach (string l_Fich in lstFich)
    {
       string l_AncNom = System.IO.Path.GetFileName(l_Fich);
       System.IO.File.Copy(l_Fich, System.IO.Path.Combine(p_Destination, l_AncNom));
    }
    Cordialement

    Gérard

    jeudi 19 janvier 2017 08:28
  • Bonjour,

    J'ai trouvé cette méthode d'extension sur Channel9

    public static class DirectoryInfoExtensions
    {
        // Copies all files from one directory to another.
        public static void CopyTo(this DirectoryInfo source, string destDirectory, bool recursive)
        {
            if (source == null)
                throw new ArgumentNullException("source");
            if (destDirectory == null)
                throw new ArgumentNullException("destDirectory");
    
            // If the source doesn't exist, we have to throw an exception.
            if (!source.Exists)
                throw new DirectoryNotFoundException("Source directory not found: " + source.FullName);
            // Compile the target.
            DirectoryInfo target = new DirectoryInfo(destDirectory);
            // If the target doesn't exist, we create it.
            if (!target.Exists)
                target.Create();
    
            // Get all files and copy them over.
            foreach (FileInfo file in source.GetFiles())
            {
                file.CopyTo(Path.Combine(target.FullName, file.Name), true);
            }
    
            // Return if no recursive call is required.
            if (!recursive)
                return;
            // Do the same for all sub directories.
            foreach (DirectoryInfo directory in source.GetDirectories())
            {
                CopyTo(directory, Path.Combine(target.FullName, directory.Name), recursive);
            }
        }
    }
    
    Exemple
    
    var source = new DirectoryInfo(@"C:\users\chris\desktop");
    source.CopyTo(@"C:\users\chris\desktop_backup", true);

    Source: Channel9

    mardi 24 janvier 2017 11:38