close
# 將選好的JPEG檔複製到NEF目錄,好的JPEG檔複製到NEF目錄,執行後將JPEG
# 檔移到JPEG目錄,沒有配對的NEF移到_del目錄,配對的NEF留在原目錄。
# 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 $DelFolder  = "_del/";

#檢查目錄是否存在
&checkDirectoryExist($DestRAW, $DestJPEG);

chdir $DestJPEG;
my @fileJPG = glob "*.JPG";
chdir "..";
chdir $DestRAW;
my @fileRAW = glob "*.NEF";
chdir "..";

###############################################################################

mkdir $DelFolder;

&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 ) {
            $src =~ s/\.JPG/\.NEF/gi;
        } elsif ( $_[0] eq $DestRAW ) {
            $src =~ s/\.NEF/\.JPG/gi;
        }

        unless (-e $src) {
            my $dest = $_[2].$_[$_];
            say $_[0].$_[$_].' to '.$dest;
            move($_[0].$_[$_], $dest) if (-e $_[0].$_[$_]);
        }
    }
}

sub checkDirectoryExist {
    for(@_) {
        if(!-e $_) {
            say "Not found \"$_\"";
            die;
        }
    }
}

arrow
arrow
    全站熱搜

    bagatelles 發表在 痞客邦 留言(0) 人氣()