# 將JPEG, RAW, TIFF三個目錄同步
# 2013/12/28加上checkDirectoryExist,修正問題
use strict;
use File::Copy;
use File::Basename;
use Time::HiRes qw(gettimeofday);
use 5.010;
my $t0 = gettimeofday;
my $DestRAW = "NEF/";
my $DestJPEG = "JPEG/";
my $DestTIFF = "TIFF/";
my $DelFolder = "_del/";
#檢查目錄是否存在
&checkDirectoryExist($DestRAW, $DestJPEG, $DestTIFF);
chdir $DestJPEG;
my @fileJPG = glob "*.JPG";
chdir "..";
chdir $DestRAW;
my @fileRAW = glob "*.NEF";
chdir "..";
chdir $DestTIFF;
my @fileTIF = glob "*.TIF";
chdir "..";
###############################################################################
mkdir $DelFolder;
#處理JPEG與RAW配對
&moveFile($DestJPEG, $DestRAW, $DelFolder, @fileJPG);
&moveFile($DestRAW, $DestJPEG, $DelFolder, @fileRAW);
#處理JPEG與TIFF配對
&moveFile($DestJPEG, $DestTIFF, $DelFolder, @fileJPG);
&moveFile($DestTIFF, $DestJPEG, $DelFolder, @fileTIF);
#處理JPEG與RAW配對
&moveFile($DestJPEG, $DestRAW, $DelFolder, @fileJPG);
&moveFile($DestRAW, $DestJPEG, $DelFolder, @fileRAW);
my $t1 = gettimeofday;
printf("Time: %3.3f sec\r\n", $t1 - $t0);
system("pause");
sub moveFile() {
for (3..$#_) {
my $src = $_[1].uc( $_[$_] );
if ( $_[0] eq $DestJPEG && $_[1] eq $DestRAW) {
$src =~ s/\.JPG/\.NEF/gi;
} elsif ( $_[0] eq $DestRAW && $_[1] eq $DestJPEG) {
$src =~ s/\.NEF/\.JPG/gi;
} elsif ( $_[0] eq $DestJPEG && $_[1] eq $DestTIFF) {
$src =~ s/\.JPG/\.TIF/gi;
} elsif ( $_[0] eq $DestTIFF && $_[1] eq $DestJPEG) {
$src =~ s/\.TIF/\.JPG/gi;
}
#say $src;
if ( !-e $src ) {
my $dest = $_[2].$_[$_];
say "Moving file: ".$_[0].$_[$_].' to '.$dest;
move($_[0].$_[$_], $dest) if (-e $_[0].$_[$_]);
}
}
}
sub checkDirectoryExist {
for(@_) {
if(!-e $_) {
say "Not found \"$_\"";
die;
}
}
}
全站熱搜
留言列表