Como transferir uma lista de arquivos para um usuário offline com Windows XP básico?

Como transferir uma lista de arquivos para um usuário offline com Windows XP básico?

Tenho muitos arquivos (100 GB) e quero dar alguns deles ao meu amigo. Mas ele deve selecionar quais arquivos ele precisa e não posso fornecer todos os arquivos de uma vez (não tenho um flash USB ou disco rígido USB tão grande). Posso fazer uma lista de todos os arquivos e transferi-los em um pequeno flash USB para ele, e então ele pode dizer quais pastas deseja e quais não.

Como devo fazer a lista de arquivos, que podem ser facilmente visualizados na instalação padrão do Windows XP ou com algum pequeno programa do tipo WindowsExplorer? Posso fazer uma ls -lRlistagem semelhante e armazená-la em txt, mas será difícil para meu amigo visualizar essa lista. Existe um diskdirplugin do Total Commander, que pode arquivar pastas em arquivos de texto apenas com nomes e caminhos dos arquivos armazenados. Então este plugin permite que o comandante total se mova dentro deste arquivo como dentro do zip ou arj. Mas acho que o comandante total é muito difícil de usar para meu amigo, então estou perguntando sobre uma solução semelhante ao Windows Explorer (por exemplo, o winzip permite que o Explorer se mova dentro de arquivos zip, e eu quero algo parecido).

Então. Posso instalar qualquer programa, também posso armazenar o programa visualizador com lista de arquivos em flash USB.

Responder1

Supondo que você consigapowershell v2instalado em sua máquina local (ou já instalado), o script a seguir pode fazer o que você procura (pode funcionar no PowerShell v1, não tenho certeza):

$dupedir = "D:\Backup"
$newdir = "C:\Temp"
$dupelist = Get-ChildItem -Force -Recurse -ErrorAction SilentlyContinue $dupedir

foreach ($item in $dupelist) 
{
    If ($item -is [Io.DirectoryInfo])
    {
        $itemtype = "directory"
    }
    If ($item -is [Io.FileInfo])
    {
        $itemtype = "file"
    }

    New-Item -Force -type $itemtype -Path $item.FullName.Replace("$dupedir","$newdir")
}

Altere o caminho para $dupedira raiz do caminho que você deseja informar ao seu amigo. Assim que a execução deste script for concluída, você deverá ter um espelho exato da estrutura de arquivos (mas não dos arquivos reais) que deseja deixar seu amigo examinar em C:\Temp (ou em outro lugar, se você $newdirtambém alterar o diretório da variável. Don A variável não deve $newdirestar dentro do diretório da $dupedirvariável ou você obterá recursão infinita que poderá eventualmente consumir todo o espaço em disco (mesmo que os "arquivos" sejam arquivos de 0 byte).

O bom do PowerShell é que você pode "escrever" scripts na linha de comando (semelhante ao bash). Copie o código em um editor de texto, faça as alterações no caminho, depois copie e cole tudo na janela do PowerShell e tudo será mágico.

Eu sei que você mencionou que tem o bash, e se você quisesse isso em uma máquina unix/linux, eu poderia ter feito isso no bash. Infelizmente, nunca fui muito bom com scripts bash quando era necessário mexer no sistema de arquivos do Windows.

Responder2

Basta usar o dir /s > C:\temp\filename.txtcomando. Isso gerará a estrutura de diretórios para o arquivo C:\temp\filename.txt. Comece no local de onde você deseja descer.

Depois é só enviar para ele o arquivo TXT.

Responder3

Por que não usar um arquivo zip? Você pode visualizar todos os arquivos em uma janela e ainda extraí-los para pastas diferentes.

Responder4

Pensei nessa questão há algum tempo e me deparei com duas soluções. O melhor é o seguinte.

UsarCDcatque é um programa que pode indexar árvores de sistemas de arquivos como DVDs ou discos rígidos (sem armazenar arquivos grandes no índice) e armazenar vários deles em um catálogo. Este é provavelmente o programa de escolha para tal tarefa porque também incluirá meta informações de músicas (tags ID3) e vídeos (resolução, duração e assim por diante) ao catálogo. Outro recurso interessante é que o cdcat pode calcular o tamanho de um diretório indexado ou arquivo (nó).

Ele salvará todas as metainformações (e arquivos pequenos como nfo, se você configurá-lo para fazer isso) em um arquivo XML compactado. Copiar arquivos de você (pessoa A) para alguém (pessoa B), após permitir que ele (B) selecione o que realmente deseja, poderia funcionar assim:

  1. A pessoa A indexa todos os seus arquivos interessantes (você deve verificar as configurações do cdcat antes de fazer isso para ter certeza do que será incluído, como nfo, tags ID3,…) e os salva como um catálogo.
  2. A pessoa A copia o catálogo para a pessoa B.
  3. Agora a pessoa B precisa selecionar os arquivos de alguma forma. Tive a ideia de usar o campo de categoria que pode ser adicionado a cada nó (diretório ou arquivo). Este campo poderia ser usado como prioridade, por exemplo. Qualquer nó que não tenha nenhuma categoria anexada recursivamente ou com uma categoria especial não será copiado posteriormente. A categoria também é salva no arquivo XML e não é muito difícil escrever um analisador para exportar, por exemplo, um script .bat ou script Bash para copiar todos os arquivos desejados.
  4. A pessoa B fornece o script de cópia específico do sistema operacional para a pessoa A (ou, é claro, a pessoa B devolve o catálogo modificado e permite que a pessoa A gere o script de cópia).
  5. A pessoa A executa o script de cópia e fornece à pessoa B o meio de dados. (Haverá um pequeno inconveniente porque o cdcat não salva o caminho para o ponto de montagem de onde os dados foram indexados no catálogo.)
  6. A pessoa B copia os arquivos para seu armazenamento e devolve o meio de dados à pessoa A.

Esta solução ainda não é perfeita, mas é a melhor que encontrei. Ainda não usei isso, mas farei isso no futuro. Durante isso precisarei escrever alguma extensão ou script que gere scripts de cópia para Linux e Windows. Meu plano é incluir isso diretamente no programa cdcat.

Uma segunda e mais sofisticada solução que vale a pena orientar é usaranexo gitque provavelmente também pode ser usado para isso, mas não pensei nisso com tanto cuidado quanto na solução com cdcat porque essa segunda abordagem exigiria de alguma forma que ambas as pessoas (A e B) tivessem git-annex e soubessem como usá-lo…

Vou mantê-lo atualizado.

informação relacionada