Como criar novas pastas e colocar um arquivo nele

0

Para corresponder aos critérios de um "coverflow" como soft eu tenho que criar uma pasta específica (chamada "name_of_the_film") para cada film.avi e cover.jpg que eu tenho no meu diretório de filmes:

Hoje:

d:/film/starwars.avi, 
d:/film/starwars2.avi
d:/film/starwars.jpg
d::film/starwars2.jpg

Amanhã:

d:/film/starwars
d:/film/starwars/starwars.avi
d:/film/starwars/starwars.jpg 
d:/film/starwars2
d:/film/starwars2/starwars2.avi
d:/film/starwars2/starwars2.jpg 

É possível fazer isso automaticamente?

    
por ricciolo 11.09.2009 / 01:05

2 respostas

3

Não estou ciente de nenhum aplicativo que faça isso, mas você pode escrever um pequeno script em Perl ou Python para fazer isso para você. O seguinte script perl deve fazer o que você precisa:

use File::Copy;

my $baseDir = "D:/film/";

opendir my $dir, $baseDir or die "Cannot open directory: $!";
my @files = readdir $dir;

foreach my $file (@files)
{
  $fileName = $1 if ($file =~ /^(.*)\.[^\.]+$/i);
  mkdir("$baseDir/$fileName") unless (-d "$baseDir/$fileName");
  move("$baseDir/$file", "$baseDir/$fileName/$file");
}

Supondo que você tenha o perl instalado, salve este script como CreateMovieFolders.pl e execute perl CreateMovieFolders.pl a partir da linha de comando.

    
por 11.09.2009 / 01:09
0

Você pode fazer isso com um script em lote.

Veja aqui para uma lista de maneiras de manejar variáveis de loop.

    
por 11.09.2009 / 20:17