none
Como faço para copiar uma pasta com mais de 20 subpastas? RRS feed

  • Pergunta

  • Quero copiar todos arquivos de um diretório para outro, porém dá acesso negado nas subpastas.

    Segue myCod: 

    // VARIAVEIS DE CONEXÃO PARA ATUALIZAR
                                string _nameFile = "";
                                string _extractFile = Application.StartupPath + @"\\Data\up\ext\ce";
                                string _destinoUpdate = path + @"\ce";
                                string _copiarFiles = System.IO.Path.Combine(_extractFile, _nameFile);
                                string _colarFiles = System.IO.Path.Combine(_destinoUpdate, _nameFile);
    
                                if (!Directory.Exists(_destinoUpdate)) { Directory.CreateDirectory(_destinoUpdate); };
    
                                if (Directory.Exists(_destinoUpdate))
                                {
                                    string[] _filesSc = Directory.GetDirectories(_extractFile);
                                    foreach (string _ss in _filesSc)
                                    {
                                        _nameFile = Path.GetFileName(_ss);
                                        _colarFiles = Path.Combine(_destinoUpdate, _nameFile);
                                        File.Copy(_ss, _colarFilesCe, true);
                                    }
                                }
    OBRIGADO DESDE JÁ!

    segunda-feira, 10 de outubro de 2016 13:08

Respostas

  • Boa tarde,

    Após muito pesquisar, encontrei a solução para minha dúvida, segue abaixo código para copiar pastas + subpastas + arquivos. 

    public static void CopyFolderContents(string sourceFolder, string destinationFolder)
    {
    if (Directory.Exists(sourceFolder))
    {
    // Copy folder structure
    foreach (string sourceSubFolder in Directory.GetDirectories(sourceFolder, "*", SearchOption.AllDirectories))
    {
    Directory.CreateDirectory(sourceSubFolder.Replace(sourceFolder, destinationFolder));
    }
    // Copy files
    foreach (string sourceFile in Directory.GetFiles(sourceFolder, "*", SearchOption.AllDirectories))
    {
    string destinationFile = sourceFile.Replace(sourceFolder, destinationFolder);
    File.Copy(sourceFile, destinationFile, true);
    }
    }
    }

    Fonte: https://www.roelvanlisdonk.nl/2011/05/26/to-copy-the-contents-of-a-folder-to-an-other-folder-including-all-subfolders-in-c/

    Abraços!

    segunda-feira, 10 de outubro de 2016 16:36