2.9 フォルダやファイルの移動
 ファイルやフォルダを移動するときの方法です。まず、ファイルの移動を行うにはファイルシステムオブジェクトのMoveFileメソッドを使います。次にフォルダの移動ですが、こっちはファイルシステムオブジェクトのMoveFolderメソッドで行います。

 なお、このメソッドを使うとアンチウィルスが悪さをしたと勘違いし「ウィルスかもしれません!」なんて警告メッセージが出るかも知れません。
使用例
 ファイルやフォルダの移動の例です。

 例は、1つのファイルとフォルダをA地点からB地点まで(?)移動、移動の応用技として、ファイル名とフォルダ名の変更を行うという内容です。

 最初にファイルの移動(AとB)です。c:\happy\tempというフォルダに入っている20030905.datというファイルを、c:\happy\sendというフォルダに移動します。ファイルの移動には、ファイルシステムオブジェクトのMoveFileメソッドを使用し、パラメタは移動元も移動先もファイル名までのフルパスを指定します。

 次はフォルダの移動(CとD)です。c:\happy\tempというフォルダに入っている、dataというフォルダを、c:\happy\sendというフォルダに移動します。ファイルの移動には、ファイルシステムオブジェクトのMoveFolderメソッドを使用し、パラメタは移動元も移動先もフォルダ名までのフルパスを指定します。

 で、次はファイルやフォルダ移動の応用技。移動前後のフォルダを同じにし、移動先のファイル名やフォルダ名を変えるとファイル名の変更が出来ます。

 EとFではMoveFileメソッドを使い、ファイル名の変更をしています。c:\happyというフォルダに入っているSendFile.txtというファイルを、同じフォルダ内(c:\happy)でSendFile2.txtというファイル名で移動しています。移動前後のフォルダがc:\happyで同じなので、ファイル名の変更をしたことになります。

 GとHではMoveFolderメソッドを使い、フォルダ名の変更をしています。c:\happyというフォルダに入っているdataというフォルダを、同じフォルダ内(c:\happy)でdata2というフォルダ名で移動しています。移動前後のフォルダがc:\happyで同じなので、フォルダ名の変更をしたことになります。

 ちなみに、MoveFileメソッドとMoveFolderは、移動先に同じ名前のファイルやフォルダがあると移動できないので注意!それにしてもこのサンプルプログラム、全く使い道ないよねぇ…(汗)

 ■VBScriptの記述例
Option Explicit

Dim objFileSys
Dim strMoveFrom
Dim strMoveTo

'@ファイルシステムオブジェクトを作成
Set objFileSys = CreateObject("Scripting.FileSystemObject")

'==============================================================
'= ファイルの移動
'==============================================================
'A移動元と移動先のファイル名を変数に設定
strMoveFrom = "c:\happy\temp\20030905.dat"
strMoveTo = "c:\happy\send\20030905.dat"

'Bファイルの移動を行います
objFileSys.MoveFile strMoveFrom,strMoveTo

'==============================================================
'= フォルダの移動
'==============================================================
'C移動元と移動先のフォルダ名を変数に設定
strMoveFrom = "c:\happy\temp\data"
strMoveTo = "c:\happy\send\data"

'Dフォルダの移動を行います
objFileSys.MoveFolder strMoveFrom,strMoveTo

'==============================================================
'= ファイル名の変更(同じフォルダ内での移動)
'==============================================================
'E移動元と移動先のファイル名を変数に設定
' 移動先と移動元のフォルダを同じにし、ファイル名だけ別にすると
' ファイル名の変更をしたことになる
strMoveFrom = "c:\happy\SendFile.txt"
strMoveTo = "c:\happy\SendFile2.txt"

'Fファイルの移動を行います
objFileSys.MoveFile strMoveFrom,strMoveTo

'==============================================================
'= フォルダ名の変更(同じフォルダ内での移動)
'==============================================================
'G移動元と移動先のフォルダ名を変数に設定
' 移動先と移動元のフォルダを同じにし、移動するフォルダ名だけ別にすると
' フォルダ名の変更をしたことになる
strMoveFrom = "c:\happy\data"
strMoveTo = "c:\happy\data2"

'Hフォルダの移動を行います
objFileSys.MoveFolder strMoveFrom,strMoveTo

'Iオブジェクトの破棄
set objFileSys = Nothing

 ■JScript(JavaScript)の記述例
var objFileSys;
var strMoveFrom;
var strMoveTo;

//@ファイルシステムオブジェクトを作成
objFileSys = new ActiveXObject("Scripting.FileSystemObject");

//==============================================================
//= ファイルの移動
//==============================================================
//A移動元と移動先のファイル名を変数に設定
strMoveFrom = "c:\\happy\\temp\\20030905.dat";
strMoveTo = "c:\\happy\\send\\20030905.dat";

//Bファイルの移動を行います
objFileSys.MoveFile(strMoveFrom,strMoveTo);

//==============================================================
//= フォルダの移動
//==============================================================
//C移動元と移動先のフォルダ名を変数に設定
strMoveFrom = "c:\\happy\\temp\\data";
strMoveTo = "c:\\happy\\send\\data";

//Dフォルダの移動を行います
objFileSys.MoveFolder(strMoveFrom,strMoveTo);

//==============================================================
//= ファイル名の変更(同じフォルダ内での移動)
//==============================================================
//E移動元と移動先のファイル名を変数に設定
// 移動先と移動元のフォルダを同じにし、ファイル名だけ別にすると
// ファイル名の変更をしたことになる
strMoveFrom = "c:\\happy\\SendFile.txt";
strMoveTo = "c:\\happy\\SendFile2.txt";

//Fファイルの移動を行います
objFileSys.MoveFile(strMoveFrom,strMoveTo);

//==============================================================
//= フォルダ名の変更(同じフォルダ内での移動)
//==============================================================
//G移動元と移動先のフォルダ名を変数に設定
// 移動先と移動元のフォルダを同じにし、移動するフォルダ名だけ別にすると
// フォルダ名の変更をしたことになる
strMoveFrom = "c:\\happy\\data";
strMoveTo = "c:\\happy\\data2";

//Hフォルダの移動を行います
objFileSys.MoveFolder(strMoveFrom,strMoveTo);

//Iオブジェクトの破棄
objFileSys = null;
Copyright(C) 1999-2006 結城圭介。 All rights reserved