$B:n@.(B:2006$BG/(B7$B7n(B2$BF|(B
$B%=%U%H%&%'%"$N3+H/$rB3$1$F$$$k$H!"%/%i%9$K$@$s$@$s%a%s%P!<4x?t$,a}$($f$$$c$f!"5pbg$k$j$c$f$7$^$&$3$h$,$"$k!#(b
$B5pBg2=$7$?%/%i%9$O!"(B1$B$D$N%/%i%9$K$?$/$5$s$N5!G=$r5M$a9~$_2a$.$?>uBV$K$J$C$F$$$k!#$3$&$$$C$?%/%i%9$O!"J,$+$j$K$/$/!";H$$$E$i$$$?$a!"%j%U%!%/%?%j%s%0$r9T$$!"J#?t$N%/%i%9$KJ,3d$9$k$3$H$K$J$k$@$m$&!#(B
$B$@$,!"%j%U%!%/%?%j%s%0$N$d$jJ}$O!"?M$K$h$C$F0[$J$k!#FC$K!"(BC$B8@8l$N%3!<%g%#%s%0$k7h$o$c$f$-$??m$,%/%i%9$r
$B$N(B
$B$K$O!"%U%!%$%k$N%3%T!<$r$9$k(bcfilecopy$b$h$$$&%/%i%9$rnc$k!"%a%s%p!<4x?t$,b?$9$.$k%/%i%9$r
$B$@$,!"$3$NNc$r8+$k$H!"%j%U%!%/%?%j%s%0$K$h$C$F!"ITE,@Z$J%$%s%?!<%u%'!<%9$r;}$d%/%i%9$,$g$-$f$7$^$c$f$$$k!#(b
$B$^$:$O!"
class CFileCopy {
typedef bool (*UserCancelFunc)(const CFileCopy&,void*);
typedef void (*DirDownFunc)(const CFileCopy&,const char*,void*);
typedef void (*DirUpFunc)(const CFileCopy&,const char*,void*);
typedef void (*FileCopyStartFunc)(const CFileCopy&,const char*,void*);
typedef void (*FileCopyEndFunc)(const CFileCopy&,const char*,void*);
...($BCfN,(B)...
public:
CFileCopy();
virtual ~CFileCopy();
void SetSourceDirName(const char*); //$B%3%T!<85$n%g%#%l%/%h%jl>$r%;%C%H$9$k(B
void SetDestDirName(const char*); //$B%3%T!<@h$n%g%#%l%/%h%jl>$r%;%C%H$9$k(B
void SetCreateDir(bool); //$B%3%T!<@h$n%g%#%l%/%h%j$,b8:_$7$j$$$h$-$k:n@.$9$k$+$n;xdj(b
void SetUserCancelFunc(UserCancelFunc); //$B%3%T!e>:;~$K8F$S=P$9(B
//$B%3!<%k%p%c%/4x?t$n%;%c%h(b
void SetDUFuncMisc(void*); //$B%G%#%l%/%H%j>e>:;~$N%3!<%k%p%c%/$nbh(b3$b0z$-?t$n%;%c%h(b
void SetFileCopyStartFunc(FileCopyStartFunc); //1$B$D$N%U%!%$%k%3%T!<3+;o;~$k8f$s=p$9%3!<%k%p%c%/4x?t$n%;%c%h(b
void SetFCStartFuncMisc(void*); //1$B$D$N%U%!%$%k%3%T!<3+;o;~$n%3!<%k%p%c%/$nbh(b3$b0z$-?t$n%;%c%h(b
void SetFileCopyEndFunc(FileCopyEndFunc); //1$B$D$N%U%!%$%k%3%T!<=*n;;~$k8f$s=p$9%3!<%k%p%c%/4x?t$n%;%c%h(b
void SetFCEndFuncMisc(void*); //1$B$D$N%U%!%$%k%3%T!<=*n;;~$n%3!<%k%p%c%/$nbh(b3$b0z$-?t$n%;%c%h(b
void ExecCopy(void); //$B%3%T!<$9$k(b
int GetErrorCode(void); //$B%(%i!<%3!<%i$r$($k(b
};
$B$7$7$?7k2L$r0zMQ$9$k!#(B
class CFileCopy {
class CallBack {
protected:
void* mMisc;
public:
CallBack(){ mMisc = NULL; };
virtual ~CallBack();
virtual bool UserCancel(void*) = 0; //$B%3%T!e>:(B
virtual void FileCopyStart(const char*,void*) = 0; //1$B$D$N%U%!%$%k%3%T!<3+;o(b
virtual void FileCopyEnd(const char*,void*) = 0; //1$B$D$N%U%!%$%k%3%T!<=*n;(b
void SetMisc(void* ioMisc){ mMisc = ioMisc; }; //Misc$B0z$-?t$N%;%C%H(B
};
public:
CFileCopy();
virtual ~CFileCopy();
int SetParam(const char*,const char*,bool,CallBack*); //$B%Q%i%a!<%?$r%;%c%h$9$k(b
int ExecCopy(void); //$B%3%T!<$9$k(b
};
class MyFileCopyCallBack : public CFileCopy::CallBack {
public:
virtual bool UserCancel(void*);
virtual void DirDown(const char*,void*);
virtual void DirUp(const char*,void*);
virtual void FileCopyStart(const char*,void*);
virtual void FileCopyEnd(const char*,void*);
};
$B$3$NNc$G$O!"(BCFileCopy$B%/%i%9$N%a%s%P!<4x?t$n?t$r8:$i$=$&$h$7$?7k2l!"
int SetParam(const char*,const char*,bool,CallBack*); //$B%Q%i%a!<%?$r%;%c%h$9$k(b
$BCx
$B%3!<%k%p%c%/4x?t$n@_dj$,$d$?$ib?$/(b,$b%3%t!<$=$n$b$n$r
$B$=$7$F!"
$B$b$7$bI.
$B$3$l$O!"$3$N(BCFileCopy$B%/%i%9$rMxMQ$7$?%W%m%0%i%`$r%3!<%g%#%s%0$9$k!"%3!<%@!<$n;ke@$+$i8+$?0u8+$g$"$m$&!#(b
$B85!9!"$3$N5-;v$O!";(;o!V(BC MAGAZINE$B!W$K7G:\$5$l$?$b$N$G$"$k$?$a!"(BC$B8@8l%W%m%0%i%^!<$n;ke@$g=q$+$l$f$$$k$h$&$k;w$o$l$k!#(b
$B$@$,!"%3!<%@!<$n;ke@$k4p$e$$$f%/%i%9$r:n$jd>$9$H!"5U$K!"%/%i%9$,J,$+$j$K$/$/!";H$$$E$i$/$J$C$F$7$^$&$3$H$b$"$k!#(B
$B$3$NNc$G$O!"3N$+$K!"(BCFileCopy$B%/%i%9$N%a%s%P!<4x?t$n?t$o7`e*$k8:>/$7$?!#%3%T!<$r$9$k$^$g$na0=`hw$o(b1$b9t$g:q$`$7!"4x?t$r8f$s=p$9=g=x$r4v0c$($k$3$h$bl5$/$j$c$?$@$m$&!#(b
$B$7$+$7!"%Q%i%a!<%?$n@_dj$r(bsetparam$b4x?t$g$^$h$a$?$3$h$k$h$j!"5q$c$f!"(bcfilecopy$b%/%i%9$n5!g=$,j,$+$i$j$/$j$c$f$7$^$c$?!#
$B$^$?!"K\Mh$O8_$$$KL54X78$J!"FHN)$7$?%Q%i%a!<%?$r!"$9$y$f0ley$k;xdj$9$k$h$&$k$7$?$?$a!"%/%i%9$n;h$$j}$k@)8b$,@8$8$f$7$^$c$?!#nc$($p!"$"$k%g%#%l%/%h%j$r(b2$b%u=j$k%3%t!<$9$k>l9g$O!"%3%T!<@h$n%g%#%l%/%h%jl>$@$1$rJQ99$7$F$+$i(BExecCopy$B4X?t$r8F$S$?$$$H$3$m$@$,!"
$B%a%s%P!<4x?t$r>/$J$/$9$l$P!"J,$+$j$d$9$$%/%i%9$K$J$kLu$G$O$J$$!#%3!<%g%#%s%0$,(b1$b9t$g:q$`$n$,!";h$$$d$9$$%/%i%9$h$o8b$i$j$$!#(b
$BNc$($P!"(BJava$B8@8l$N(BFile$B%/%i%9$O!"Hs>o$KNI$/;H$o$l$F$$$k4pK\E*$J%/%i%9$G$"$k!#$3$N%/%i%9$O!"/$J$$$O$:$@!#(B
$B%j%U%!%/%?%j%s%0$r9T$$!"%/%i%9$r:n$jD>$9$N$G$"$l$P!"%3!<%g%#%s%0$r$9$k?m$n;ke@$g$o$j$/!"%/%i%9$r@_7w$9$k%g%6%$%j!<$n;ke@$g9m$($k$3$h$,=emw$@!#(b
$B%G%6%$%J!<$n;ke@$g!"%/%i%9$nlr3d$d!"$"$k$y$-;q$r9m$($k$h!"%u%!%$%k$r%3%t!<$9$k(bcfilecopy$b%/%i%9$n%$%s%?!<%u%'!<%9$o!"
$B%W%m%0%i%_%s%0$N6X$8
$B$@$,!"$3$l$i(B4$B$D$N%Q%i%a!<%?$o!"i,$:f1;~$k;xdj$7$j$1$l$p$j$i$j$$$b$n$g$o$j$$!#$`$7$m!"8_$$$kfhn)$j$b$n$g$"$k!#(b
$B$=$3$G!"$3$l$i$rJL8D$K;XDj$G$-$k$h$&$K!"(B4$B$D$N%a%s%P!<4x?t$kj,$1$k!#$3$ne@$k4x$7$f$o!";ve!"%j%U%!%/%?%j%s%0$r$9$kA0$NJ}$,NI$+$C$?!"$H8@$($k!#(B
CFileCopy$B%*%V%8%'%/%H$N$"$k$Y$-;Q$r9M$($k$H!"$3$N(B2$B$D$N%Q%i%a!<%?$oi,?\$j$n$g!"%3%s%9%h%i%/%?$g;xdj$9$k!#(b
$B%W%m%0%i%_%s%0$N6X$8
$B%W%m%0%i%_%s%0$N6X$8
$B<+j,$,$=$n%/%i%9$r;h$&;~$n!"l\@h$n;h$$j}$n$3$h$7$+f,$kl5$$$h!"$3$n$h$&$jitmw$j@)8b$rf~$l$f$7$^$$$d$9$$!#(b
$B%W%m%0%i%_%s%0$N6X$8
$B$@$,!"(BCFileCopy$B%/%i%9$N$"$k$Y$-;Q$r9M$($k$H!"
$B$A$J$_$K!"%W%m%0%i%_%s%0$N6X$8
$B$A$J$_$K!"%W%m%0%i%_%s%0$N6X$8
$B$@$,$3$l$b!"C1$K8F$S=P$9$N$,LLE]$@$+$i!"$H$$$&M}M3$G$O$J$/!"(BCFileCopy$B%/%i%9$NLr3d$+$iH=CG$9$k$Y$-$@!#(BCFileCopy$B%/%i%9$O!"
$B%W%m%0%i%_%s%0$N6X$8
$B0z?t$K2?$rEO$;$PNI$$$N$+$r!"0z?t$NJQ?tL>$GI=$9$Y$-$G$"$k!#(B
$BNc$($P!"(BSetParam$B4X?t$N%3%a%s%H$O!V%Q%i%a!<%?$r%;%c%h$9$k!w$h$j$c$f$$$k$,!"$3$l$o2?$b=q$$$f$$$j$$$n$hf1$8$g$"$k!#(b
$B$3$l$G$O!"0z?t$H$7$F$I$N$h$&$J%G!<%?$,eo$5$l$k$n$+$,j,$+$i$j$$!#$d$^$j!"%/%i%94v$n%$%s%?!<%u%'!<%9$rdj5a$7$f$$$j$$$n$hf1$8$3$h$k$j$c$f$$$k!#(b
$B%-%c%9%H$r;H$(!"$H$$$&$3$H$J$N$@$m$&$,!"(BC++$B8@8l$G$N%-%c%9%H$O4m81$,>l9g$,B?$$!#$^$?!"@5$7$/%-%c%9%H$9$k$?$a$K$O!"%/%i%94V$G0EL[$NN;2r$,I,MW$K$J$k!#(B
CallBack$B$H$$$&!"(BC$B8@8l%W%m%0%i%^!<$i$7$$l>A0$,IU$1$i$l$F$$$k$,!"$3$3$O%G%6%$%s%Q%?!<%s$n(bobserver$b%q%?!<%s$,;h$o$l$f$$$k$n$g!"(bcfilecopyobserver$b$j$i$nl>A0$,NI$$!#(B
$B$^$?!"DLCN$r$9$k4X?t$NL>A0$,!"!V(BDirDown$B!W!V(BFileCopyStart$B!W$N$h$&$K$J$C$F$$$k$,!"$3$l$G$O=hM}$r