Olá Felipe Machado tudo bem?
Cara você fez uma pergunta e foi bombardeado com perguntas e uma analise do seu código( Talvez seja construtivas ), e pelo que pude perceber no texto, não tem a resposta para a pergunta que você fez .
Por Favor me corrijam se eu estiver errado.
Olha Felipe como você pediu uma ajuda, e não uma analise do seu código, fiz umas alterações nele e deixei fazendo o que você quer.
Se não me engano, a sua pergunta foi, como criar pastas no destino com base no caminho de origem.
E ai esta a resposta simples e funcional.
Lembrando que este método precisa que o caminho para o server esteja Mapeado.
no meu caso estava mapeado como B:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.IO;
using System.Collections;
using System.Diagnostics;
namespace BackupAutomatico
{
class Program
{
static void Main(string[] args)
{
Listar();
}
private static void Listar()
{
//Array que guardara o nome dos arquivos
ArrayList ArrayLocal = new ArrayList();
//Informa o caminho do diretorio
DirectoryInfo CaminhoLocal = new DirectoryInfo("C:/Temp/pasta principal/");
// Define o caminho onde os arquivos serão procurados e quais os arquivos a servem procurados
FileInfo[] ArquivoLocal = CaminhoLocal.GetFiles("*", SearchOption.AllDirectories);
//Contadores
int i = 0;
foreach (FileInfo arquivo in ArquivoLocal)
{
//Adiciona o nome do arquivo em uma posição do array
ArrayLocal.Add(arquivo.FullName);
Console.WriteLine(ArrayLocal[i].ToString());
// Recebe informações do arquivo a ser copiado
FileInfo inforArquivoLocal = new FileInfo(ArrayLocal[i].ToString());
// Cria pastas no destino(Servidor) com base nas pastas de origem(Local).
Directory.CreateDirectory("B:/" + inforArquivoLocal.DirectoryName.Substring(2));
//Faz a cópia dos arquivos locais para o servidor
File.Copy(ArrayLocal[i].ToString(), "B:" + ArrayLocal[i].ToString().Substring(2), true); // Copia o arquivo para criadas anteriormente..
i++;
}
Console.ReadKey();
}
}
}
Print compilação
↧