(for Internet Explorer)
← ▼ ▲
↑
FileSystemObject
CopyFile
ファイルをコピーします
MoveFile
ファイルを移動します
MoveFolder
フォルダを移動します
[ 親: ファイル操作 ]
FolderExists
フォルダが存在するかどうかを返します
(Web)
ファイルを削除します
CopyFolder
フォルダをコピーします
FileExists
ファイルが存在するかどうかを返します
DeleteFile
Set g_fs = CreateObject("Scripting.FileSystemObject")
オブジェクトの取得
メンバ
GetFile
→ File オブジェクト
CreateFolder
フォルダを作成します。
→ ファイル名、パス
WSH だけでなく VBA でも使えます。
→ TextStream （テキストファイル）
関連
← ▼ ▲
FileSystemObject::CopyFile
Set fs = CreateObject("Scripting.FileSystemObject")
fs.CopyFile "ipLibCom.h", "..\..\..\inc\ipLibCom.h", True
Set fs = Nothing
強制上書き
新しくできるファイル名も含める
src から dst にファイルをコピーします。
MSDN(Web)
Sub FileSystemObject::CopyFile( src as string, dst as string [, overwrite as Bool] )
【引数】
src
コピーするファイルのパス（コピー元、ワイルドカード可）
dst
コピー先のファイルのパス
サンプル
overwrite
上書きするかどうか。 デフォルト True (*1)
[ 親: FileSystemObject ]
False のとき、上書きしようとするとエラーになります。
(*1)
→ ファイルコピーの引数
参考
エラー
src に指定したファイルが無いとき、エラー 76
← ▼ ▲
FileSystemObject::CopyFolder
src から dst にフォルダをコピーします。
Sub FileSystemObject::CopyFolder( src as string, dst as string [, overwrite as Bool] )
【引数】
src
コピーするフォルダのパス（コピー元、ワイルドカード可(*2)）
dst
コピー先のフォルダのパス
overwrite
上書きするかどうか。 デフォルト True (*1)
MSDN (Web)
False のとき、上書きしようとするとエラーになります。
(*1)
→ ファイルコピーの引数
参考
[ 親: FileSystemObject ]
(*2)
ワイルドカードは、コピー先にマッチしないときに限り使えます。
← ▼ ▲
FileSystemObject::FileExists
Function FileSystemObject::FileExists( path as string ) as Boolean
ファイルが存在するかどうかを返します。
ワイルドカードは使えません。
MSDN(Web)
[ 親: FileSystemObject ]
← ▼ ▲
FileSystemObject::FolderExists
Function FileSystemObject::FolderExists( path as string ) as Boolean
フォルダが存在するかどうかを返します。
ワイルドカードは使えません。
MSDN(Web)
[ 親: FileSystemObject ]
← ▼ ▲
FileSystemObject::MoveFile
MSDN(Web)
Sub FileSystemObject::MoveFile( src as string, dst as string )
src から dst にファイルを移動します。
【引数】
src
移動するファイル（移動元、ワイルドカード可）
dst
移動先のファイルパス（フォルダのときは、最後に \）
Set fs = CreateObject("Scripting.FileSystemObject")
fs.MoveFile "ipLibCom.h", "..\..\..\inc\ipLibCom.h"
Set fs = Nothing
新しくできるファイル名も含める
サンプル
【補足】
ドライブをまたぐときは、エラーになります
[ 親: FileSystemObject ]
← ▼ ▲
FileSystemObject::MoveFolder
MSDN(Web)
フォルダを移動します。
使い方は、
と同じです。
FileSystemObject::MoveFile
[ 親: FileSystemObject ]
← ▼ ▲
FileSystemObject::CreateFolder
フォルダを作成します。
すでにフォルダがあるときは、エラーになります。
Dim g_fs : Set g_fs = CreateObject( "Scripting.FileSystemObject" )
If not g_fs.FolderExists( path **** ) Then g_fs.CreateFolder path ****
← ▼ ▲
FileSystemObject::GetFileName
MSDN (Web)
Set fs = CreateObject("Scripting.FileSystemObject")
WScript.Echo fs.GetFileName( "aa\bb.txt" ) // bb.txt と表示
パスの最後の部分（ファイル名、またはフォルダ名）を返します。
→ ファイル名
[ 親: ファイル名 ]
関連
サンプル：
Funtcion FileSystemObject::GetFileName( Path as string ) as string
← ▼ ▲
FileSystemObject::GetExtensionName
Dim ext : ext = g_fs.GetExtensionName( path )
サンプル：
Funtcion FileSystemObject::GetExtensionName( Path as string ) as string
ファイルパスから拡張子を取り出します。
関連
Path
GetExtensionName
"C:\folder\file.txt"
"txt"
→ ファイル名
""
"C:\folder\file."
""
"C:\folder\file"
"C:\folder.files\file"
""
"file.html"
"html"
← ▼ ▲
FileSystemObject::GetFile
Function FileSystemObject::GetFile( path as string ) as File
指定したパスに対応するファイルオブジェクトを返します。
(Web)
→ File オブジェクト
← ▼ ▲
FileSystemObject::GetFolder
Function FileSystemObject::GetFolder( path as string ) as Folder
指定したパスに対応するフォルダー・オブジェクトを返します。
(Web)
→ Folder オブジェクト
指定したパスにフォルダーが無いときはエラーになります。
参考
← ▼ ▲
FileSystemObject::GetParentFolderName
Function FileSystemObject::GetParentFolderName( path as string ) as string
親フォルダのパスを返します。
path 引数
返り値
"C:\folder\file.txt"
"C:\folder"
"C:\folder"
"C:\"
"C:\"
""
""
""
"C:/folder"
"C:/folder/file.txt"
[ 親: ファイル名 ]
"http://www.a.com/a.htm"
"http://www.a.com"
"http://www.a.com/"
"http:"
"a\b\file.txt"
"http://www.a.com"
"http:"
"C:\"
"C:\folder\"
"a\b"
""
"file.txt"
"a"
"a\b"
ファイル名だけのときは "" が返るため、次のようなコードは避けてください。
g_fs.GetParentFolderName( fname ) +"\"+ g_fs.GetBaseName( exe_base_name )
関連
→ GetParentAbsPath
"\folder\"
""
"\folder\file.txt"
"\folder"
分類
絶対パス
相対パス
ファイル名
Linux 形式
URL
← 注意
← 注意
← 注意
← ▼ ▲
FileSystemObject::OpenTextFile
Function FileSystemObject::OpenTextFile( path as string, [iomode as integer],
[b_create as boolean], [unicode as integer] ) as TextStream
ファイルを開きます。 ファイルの作成または読み込みを開始します。
【引数】
path
ファイルのパス
iomode
1=リード、2=ライト、8=追加、省略時=1
b_create
ファイルが無いときにエラーに「しない」かどうか
unicode
返り値
TextStream オブジェクト
True=Unicode, False=Ascii, -2=自動判定
(Web)
Const ForReading = 1, ForWriting = 2, ForAppending = 8
→ ファイル内アクセス（テキスト）
エラー
→ E_FileNotExist
→ E_WriteAccessDenied
→ OpenTextFile (vbslib)
関連
← ▼ ▲
FileSystemObject::CreateTextFile
(Web)
Function FileSystemObject::CreateTextFile( path as string,
[b_overwrite as boolean], [b_unicode as boolean] ) as TextStream
ファイルを作成します。
【引数】
path
ファイルのパス
b_overwrite
上書きするかどうか, デフォルト=False
b_unicode
返り値
TextStream オブジェクト
True=Unicode, False=Ascii, デフォルト=False
b_overwrite = False にして、ファイルがすでに存在していたときは、エラー
E_AlreadyExist
になります。
E_PathNotFound
path のファイルを格納するフォルダが存在しないときは、エラー
になります。
→ CreateFile (vbslib)
関連
→ テキストファイルを作成する (Write) サンプル
← ▼ ▲
FileSystemObject::DeleteFile
(Web)
Sub FileSystemObject::DeleteFile( path as string, [force as boolean] )
ファイルを削除します。
【引数】
path
削除するファイルのパス
iomode
True なら、リードオンリーでも強制削除
path に指定したパスに、ファイルが存在しないとエラーになります。
← ▼ ▲
FileSystemObject::DeleteFolder
Sub FileSystemObject::DeleteFolder( path as string, [force as boolean] )
フォルダを削除します。
【引数】
path
削除するフォルダのパス
force
True なら、リードオンリーでも強制削除
フォルダの中にファイルがあっても削除します。
(Web)
← ▼ ▲
ファイルサイズ（バイト）
拡張子の説明。例："テキスト ドキュメント"
File オブジェクト
MSDN(Web)
.Size
.Type
プロパティ
.Copy
.Delete
.Move
.OpenAsTextStream
メソッド
.Path
.Name
.ShortPath
.ShortName
フルパス （処理が遅いです）
ファイル名。フォルダパスを除いたもの。例：a.txt （処理が遅いです）
フルパス（8.3形式）
ファイル名（8.3形式）
Drive オブジェクト
親フォルダ（
作成日時（取得のみ）
更新日時（取得のみ）
アクセス日時（取得のみ）
.Drive
.ParentFolder
.DateCreated
.DateLastModified
.DateLastAccessed
Folder オブジェクト
）
FileSystemObject::GetFile
File オブジェクトは、
で、取得できます。
.DateLastModified
Set g_fs = CreateObject("Scripting.FileSystemObject")
Set f = g_fs.GetFile("list.txt")
WScript.Echo f.DateLastModified
.Attributes
属性。 読み取り専用、隠しファイルなど
← ▼ ▲
File::DateLastModified
Dim File::DateLastModified as Date
Date
Set g_fs = CreateObject("Scripting.FileSystemObject")
Set file = g_fs.GetFile("list.txt")
WScript.Echo file.DateLastModified
サンプル：
キーワード：
タイムスタンプ、更新日時
Set g_fs = CreateObject("Scripting.FileSystemObject")
WScript.Echo g_fs.GetFile("list.txt").DateLastModified
関連
→ MakeRule_compare (vbslib)
← ▼ ▲
File::Attributes
Dim File::Attributes as Long
(Web)
ReadOnly 定数などが使えます
属性。 読み取り専用、隠しファイルなど
サンプル
Dim fi
Set fi = g_fs.GetFile( path ) : fi.Attributes = fi.Attributes and not ReadOnly : fi = Empty
読み取り専用ではなくす
← ▼ ▲
Folder オブジェクト
MSDN(Web)
.DateCreated
.DateLastModified
.DateLastAccessed
プロパティ
.Copy
.Delete
.Move
.OpenAsTextStream
メソッド
.Size
.Type
.Attributes
直下のファイル（
直下のサブフォルダ（Folder オブジェクト）のコレクション
.Path
.Name
.ShortPath
.ShortName
フルパス （処理が遅いです）
フォルダ名 （処理が遅いです）
フルパス（8.3形式）
フォルダ名（8.3形式）
.Drive
.ParentFolder
.IsRootFolder
.Files
.SubFolders
Drive オブジェクト
親フォルダ（Folder オブジェクト）
作成日時（取得のみ）
更新日時（取得のみ）
アクセス日時（取得のみ）
File オブジェクト
）のコレクション
Folder オブジェクトは、FileSystemObject::GetFolder で、取得できます。
.Files
取得
フォルダが削除されると、Folder オブジェクトのメンバーにはアクセスできなくなります。
Dim g_fs, fo
Set g_fs = CreateObject("Scripting.FileSystemObject")
Set fo = g_fs.GetFolder( "C:\folder" )
.SubFolders
← ▼ ▲
Folder::Files コレクション
.Count
For Each i In Folder::Files
.Item( FileName )
フォルダの中のファイルの数。サブフォルダの中は除く
File オブジェクトを参照する
をループする
(Web)
Folder::Files.Item
Function Folder::Files.Item( FileName as string ) as File
FileName で指定したファイル名に一致するファイルオブジェクトを返します。
注意： FileName に変数を指定するときは、次のように型を指定してください。
Dim fo, fname
Set fo = g_fs.GetFolder( folder_path )
fname = "1.txt"
Set f = fo.Files.Item( CStr( fname ) )
CStr
File オブジェクト
← ▼ ▲
Folder::SubFolders
Dim Folder::SubFolders as Folders
直下のサブフォルダ。
(Web)
Dim fo, subfo
Set fo = g_fs.GetFolder( "." )
For Each subfo in fo.SubFolders '// subfo as Folder
echo subfo.Name
Next
サンプル：
← ▼ ▲
TextStream （テキストファイル）
(Web)
→ TextStream::Read
→ TextStream::ReadLine
→ TextStream::ReadAll
→ TextStream::SkipLine
→ TextStream::Skip
CreateTextFile
OpenTextFile
や
の返り値です。
→ TextStream::Line
→ TextStream::AtEndOfStream
関連
→ StringStream クラス (vbslib)
→ ファイル内アクセス（テキスト）
← ▼ ▲
Read (TextStream)
(Web)
Function TextStream::Read( n as integer ) as string
テキストストリームから指定文字数だけ取り出し、ストリームポインタを進めます。
【引数】
n
取り出す文字数(*1)
テキストストリームから取り出した内容
返り値
(*1)
非 Unicode で開いたときは、2バイトからなるマルチバイト文字（漢字など）
も 1文字として数えます。バイト数ではありません。
改行文字は、0D 0A のときは2文字として数えます。
← ▼ ▲
ReadLine (TextStream)
Function TextStream::ReadLine() as string
テキストストリームから１行取り出し、ストリームポインタを１行進めます。
関連
→ テキストファイルの内容を読む (Read)
【引数】
返り値
テキストストリームから取り出した１行
31 32 33 0D 0A 34 35 0D 0A 36
ファイル(*1)
返り値
31 32 33
31 32 33
31 32 33 0A 34 35 0D 0A 36
31 32 33 0D 34 35 0D 0A 36
Len(*2)
34 35 0D 0A 36
3
34 35 0D 0A 36
3
→ 改行コード
36
31 32 33 0D 34 35
6
EOF(*3)
False
31 32 33
True
31 32 33 0D 0A
False
False
True
31 32 33
31 32 33
3
3
(*1) ストリームポインタが指すデータ。灰色の部分は、次回以降の
ReadLine で読む値
(*2) Len( 返り値 ) の値
(*3) ReadLine 実行後の TextStream::AtEndOfStream の返り値
改行コードの違いによる動き
0D(vbCR), 0A(vbLF) と、0A は、1回の ReadLine で取れる区切りになります。
0D は、改行文字として返り値の中に入ります。Echo すると改行されます。
改行文字かどうかは、ウォッチで asc(mid( line, 1 )) と入力して表示される
文字コードから判別できます。
1行が 2MB 以上であっても取得できます。
Shell:Exec で起動したプログラムから出力される標準出力ストリームに改行
コードがないときは、本関数の中で待ち状態に入ります。
プログラムが終了したら、待ち状態から抜けます。
バイナリファイル
2種類の改行文字（0D,0A と 0A） が区別できないので、バイナリデータを
完全に取得することはできません。
TextStream::ReadAll は、完全にバイナリデータを取得できます。
(Web)
← ▼ ▲
ReadAll (TextStream)
Function TextStream::ReadAll() as string
テキストストリームから全て取り出します。
【引数】
返り値
テキストストリームから取り出した内容
2MB 以上であっても取得できます。
返り値は、Len でサイズを取得してもファイルサイズではありません。
0x0D 0x0A を 0x0D に変換しません。
0x00 も取得できます。
0xEAEB は、0x8145 に変わります。
(Web)
← ▼ ▲
Skip (TextStream)
Sub TextStream::Skip( n as integer )
テキストストリームを指定した文字数だけスキップします。
(Web)
← ▼ ▲
SkipLine (TextStream)
Sub TextStream::SkipLine()
テキストストリームを１行スキップします。
(Web)
指定した行へ移動するサンプル：
path = "a.txt"
Set g_fs = WScript.CreateObject( "Scripting.FileSystemObject" )
Set f = g_fs.OpenTextFile( path )
Do Until f.AtEndOfStream
line = f.ReadLine()
If line = "point" Then
i_line = f.Line - 1 '// 行番号を取得。(*1)
Exit Do
End If
Loop
WScript.Echo "i_line = " & i_line
Set f = g_fs.OpenTextFile( path )
For i=1 To i_line - 1 : f.SkipLine : Next '// 行へジャンプ
WScript.Echo f.ReadLine() '// "point" が書いてある行
f = Empty
g_fs = Empty
(*1) ReadLine した後なので、line の行番号は f.Line 行目ではなく f.Line-1 行目
←
↓