VBScriptで、ファイルのサイズを取得する部品を作成したので、公開したいと思います。
また、この部品をラップして、ファイルサイズが0バイトか、それ以外かを判定する部品も合わせて公開したいと思います。
ファイルサイズの取得
ソースコードの構成です。
「main.vbs」が実行するスクリプト、「function.vbs」は「main.vbs」から呼び出されるファイルサイズを取得する処理を記述した部品となります。
main.vbs
Option Explicit Dim file file = "C:\workspace\VBScript\main.vbs" ' ファイルシステムオブジェクトの作成 Dim fso Set fso = CreateObject("Scripting.FileSystemObject") ' 関数の読み込み Execute fso.OpenTextFile("function.vbs").ReadAll() ' 関数の呼び出し MsgBox(GetFileSize(file)) ' ファイルシステムオブジェクトの破棄 Set fso = Nothing
function.vbs
Option Explicit ' ファイルサイズ取得 Function GetFileSize(file) ' ファイルシステムオブジェクトの作成 Dim fso Set fso = CreateObject("Scripting.FileSystemObject") ' ファイルサイズの取得 Dim objFile, fileSize Set objFile = fso.GetFile(file) GetFileSize = objFile.Size ' ファイルシステムオブジェクトの破棄 Set fso = Nothing End Function
呼び出し方は「GetFileSize(確認したいファイル)」です。
「main.vbs」で記述している「MsgBox(GetFileSize(file))」は、「C:\workspace\VBScript\main.vbs」のファイルサイズをメッセージボックスで表示するというものです。
別のVBSファイルに記述した関数の読み込み方については以下の記事をご覧ください。
ファイルサイズが0バイトかそれ以外かを判定
ソースコードの構成は、先に解説した「ファイルサイズの取得」関数と同じです。
ファイルサイズの有無を判定する関数名は「IsFileSize」としています。
関数の戻り値は下記になります。
0バイト:False
0バイト以外:True
main.vbs
Option Explicit Dim file file = "C:\workspace\VBScript\main.vbs" ' ファイルシステムオブジェクトの作成 Dim fso Set fso = CreateObject("Scripting.FileSystemObject") ' 関数の読み込み Execute fso.OpenTextFile("function.vbs").ReadAll() ' 関数の呼び出し MsgBox(IsFileSize(file)) ' ファイルシステムオブジェクトの破棄 Set fso = Nothing
function.vbs
Option Explicit ' ファイルサイズ判定 Function IsFileSize(file) If(GetFileSize(file)=0)Then IsFileSize = False Else IsFileSize = True End If End Function ' ファイルサイズ取得 Function GetFileSize(file) ' ファイルシステムオブジェクトの作成 Dim fso Set fso = CreateObject("Scripting.FileSystemObject") ' ファイルサイズの取得 Dim objFile, fileSize Set objFile = fso.GetFile(file) GetFileSize = objFile.Size ' ファイルシステムオブジェクトの破棄 Set fso = Nothing End Function
呼び出し方は「IsFileSize(確認したいファイル)」です。
仕組みは簡単で、「IsFileSize」関数内で「GetFileSize」関数を呼び出しています。
「GetFileSize」関数の結果が、「0」(つまり0バイト)であれば、「False」を返し、それ以外は「True」を返しています。
記事は以上です。簡単なプログラムですが、汎用性も高いと思います。是非ご利用頂ければと思います。
コメント