|
▼FSO初心者 さん:
> 上記にて処理の判定をしたのですが、
> なぜか返り値が0以外の失敗になってしまいます。
エラー番号は何番が返りましたか? # 4 ですか?
> Dim SrcPath As String: SrcPath = "D:\(Data)"
> Dim DestPath As String: DestPath = "D:\(Temp)"
>
> sCmd = "XCopy " & SrcPath & " " & DestPath _
> & " /s /e /c /h /r /k > """ & tmpPath & """"
サンプルコードでは
> SrcPath = "D:\(Data)"
> DestPath = "D:\(Temp)"
のような、パス名の中に スペースを含まない簡単な例を示しましたが、
実際のパス名(コピー元、コピー先のいずれかまたは両方)に
スペースが含まれていれば、コマンド文字列は、「パス名を""で
囲う」処理を付け加えないと、これだけで、失敗しますね。
(他にも 失敗する原因はあると思うので、エラー番号が
どのような内容のエラーに対応するのか、調べてみるとよい
かもしれません)
XCopy コマンドはサブフォルダも作成しながらFileCopyしてくれます
ので、 FsoやVBA組み込みメソッド には相当するものが無い高機能な
ツールです。
オプションのセットにより、フォルダだけコピーとか、特定の文字列
を含むファイルまたはフォルダを「コピーから除外」したり、とか
日付けが新しいものだけバックアップ目的でコピーさせたり、とか
このコマンド一つでいろんなことができます。
ぼく自身はFSOは鈍足であまり使わないので、Fsoのほうの疑問には
お答えできませんが、そちらの疑問が解決したら、ぜひ XCopy コマ
ンド に再挑戦してみることをお勧めします♪
|
|