Mudança / migração da estrutura de diretórios do registro

0

Imagine uma SAN grande com cem mil arquivos em uma estrutura de diretórios desorganizada.

Os arquivos serão movidos para uma nova SAN com uma estrutura de diretórios organizada. Alguns arquivos serão renomeados quando forem movidos. Também muitos arquivos têm referências, por exemplo, as planilhas do Excel são interligadas e elas serão interrompidas após a movimentação.

Precisamos manter um mapa dos caminhos From e To file encase, precisamos nos referir ao arquivo, por exemplo, para corrigir um link quebrado.

Eu fiz pesquisa para ver se havia alguma coisa no mercado, mas sem sorte. Por isso, comecei a escrever um aplicativo que permite aos usuários arrastar e soltar arquivos e registros em um dB de SQL:

Não tenho 100% de certeza sobre essa abordagem. Alguém sabe se existe uma maneira melhor de fazer isso? Existe alguma coisa no Windows?

  1. Estávamos pensando em digitalizar os diretórios antigos e novos e fazer um mapa dessa maneira. Infelizmente, isso não acontecerá, já que o nome do arquivo pode mudar e as Datas de Criação / Modificação do etc serão hoje para os arquivos movidos.

  2. Estávamos pensando em ter um identificador único em cada arquivo, mas essa ideia nunca foi tão atraente: onde você armazenaria o identificador exclusivo para diferentes tipos de arquivo?

  3. Possivelmente um script AutoHotKey?

por Jeremy Thompson 14.08.2012 / 07:39

1 resposta

1

Eu criei um sistema de implantação automatizado em C # para um dos meus clientes. Esse problema parece semelhante, exceto em escala.

Coisas que foram atendidas no ADS:

  1. Check-out automático do SVN.
  2. Percorra todas as pastas.
  3. Cada pasta pode ser incluída ou excluída da distribuição.
  4. Se uma pasta for incluída, todos os arquivos e subpastas também serão incluídos. O mesmo vale para exclusão.
  5. Assim como a inclusão, cada pasta pode ser realocada para um novo local na pasta de implantação.
  6. Tudo foi arrastar e soltar (felizmente, os scripts de implantação não precisam ser modificados com frequência).
  7. A parte mais crítica foi a comparação de arquivos binários para copiar apenas arquivos modificados. < - Isso parece ser a coisa mais importante para você também. Como eu estava lidando apenas com arquivos de código como C # ou arquivos de código perl, essa foi uma verificação fácil:
    1. Capture arquivos à esquerda e à direita
    2. Remova todos os espaços em branco.
    3. Compare os arquivos de um byte de cada vez.

No seu caso, a menos que os arquivos sejam enormes, você pode usar a mesma abordagem. Se os arquivos são enormes (supondo que estes são arquivos de dados), uma simples comparação de cabeçalho / rodapé deve fazer o truque.

We were thinking of having some unique identifier in each file but that idea never got traction as where would you store the unique identifier for different file types?

Isto é o que eu tinha começado também, mas o meu problema não era tão sério, então eu o descartei. Tecnicamente, cada objeto FileInfo foi agrupado em uma classe especializada que tinha um campo específico do tipo GUID. Eu estava salvando essa matriz de classes serializadas em arquivos XML.

<FIItem>
    <ID>*some guid*</ID>
    <FileInfoObj>*file info which contains full file path*</FileInfoObj>
</FIItem>
    
por 14.08.2012 / 19:06