(for Internet Explorer)
← ▼ ▲
↑
PathDictionaryClass
PathDictionaryClass は、辞書のアイテムを設定するときのキーにフォルダーのパスを指定したら、
キーにフォルダーの中のファイルのパスも指定しても、同じアイテムを取得できる辞書です。
.FilePaths
.Item Set
.Item Get
.Item Set に指定したフォルダーの中にあるファイルやフォルダーも指定可能。
ただし、.Item Set に指定したキーが相対パスなら、絶対パスとはマッチしません。
.AddRemove で除外したパスが指定されたときは、.RemovedObject が返ります。
辞書のキーに登録したファイルと、辞書のキーに登録したフォルダーに含まれる
ファイルの相対パスを列挙します。
キーが相対パスなら、相対パスの配列が返ります。
キーの末尾が \ のときは、フォルダーにマッチします。
.IsNotFoundError = False にすると、キーが指すパスにファイルまたはフォルダーが
ないときでもエラーになりません。
ファイル、または、フォルダーのパスをキーに指定します。
サブ フォルダーも含むワイルド カードも指定可能です。
テスト
ソース
→ T_Wildcard.vbs
T_PathDictionary_1, T_PathDictionary_Wildcard, T_PathDictionary_OverSub
→ vbslib.vbs
Set paths = new PathDictionaryClass
Set paths( "Folder\Sub" ) = a_object
paths.AddRemove "*.bak"
Assert IsSameArray( paths.FilePaths, Array( "Files\1\A.txt", "Files\1\B.txt" ) )
For Each key In paths.FilePaths
Assert paths( key ) Is a_object
Next
サンプル
サブ フォルダーのキーも設定されているときに、サブ フォルダーの中のファイルやフォルダーのパス
を指定したときは、サブ フォルダーに設定されたアイテムが優先して取得されます。
.AddRemove( Path )
対象外にするフォルダーのパスや、拡張子を設定します
Set paths = new PathDictionaryClass
Set paths( "Folder" ) = a_object
Set paths( "Folder\Sub" ) = b_object
Assert paths( "Folder\File.txt" ) is a_object
Assert paths( "Folder\Sub\File.txt" ) is b_object
メンバー
→ new_PathDictionaryClass_fromXML
関連
.FileExists( Path )
キーに指定したファイルパスが辞書にあるなら True。
キーに指定したフォルダーの中（のサブフォルダー）にあるファイルの
パスが指定されたときも、True。
引数に絶対パスを指定可能。
.BasePath
キーに相対パスを指定した時の基準パス。 初期値は生成時のカレントフォルダー。
変更したら、FilePaths などの数が変わることがあります。
.Add( Key, Item ), .Count, .Items, .CompareMode, .Remove(), .RemoveAll()
Scripting.Dictionary と同じ
.FullPaths
フル パスの配列が返る FilePaths。
→ EnumFolderObjectDic
→ EnumFileObjectDic
→ Folder::Files
→ Folder::SubFolders
フォルダーを一覧する
ファイルを一覧する
XML からファイルの集合を指定する
Set paths = new PathDictionaryClass
paths.BasePath = "C:\BaseFolder"
Set paths( "Folder" ) = a_object
Assert paths( "Folder\File.txt" ) is a_object
→ Dictionary クラス （ハッシュ、辞書、Scripting.Dictionary）
→ ArrayFromWildcard
PathDictionaryClass を取得する別の方法
→ FilePathClass
ファイルのパスか、ファイルの内容に相当する文字列の抽象
new_PathDictionaryClass_fromXML
を使えば、XML ファイルの中からパスの指定を取得できます。
<Root>
<Variable name="${ExceptExts}" value="*.obj, *.bak"/>
<File path="Sample.txt"/>
<Folder path="SubFolder" attr="ABC">
<Except path="${ExceptExts}"/>
<Except path="SubFolder\Debug"/>
</Folder>
</Root>
Variable name
value
Except
Except
Folder path
path
path
File path
ArrayFromWildcard
でも、PathDictionaryClass のオブジェクトが得られます。 ArrayFromWildcard
Set paths = ArrayFromWildcard( "Folder" )
Assert paths( "Folder\File.txt" ) Is Nothing
標準の辞書との互換性
.Count, .Keys, .Items などのメソッドやプロパティは、Scripting.Dictionary と互換性があります。
Dic_add
などの、辞書を使った関数を使うこともできます。
Except タグは、AddRemove メソッドに相当します。
.FolderExists( Path )
FileExists に列挙されるファイルを含むフォルダーがあるかどうか。
Path がファイルにマッチするときは、False。
.FolderPaths
ファイルがあるフォルダーの相対パスを列挙します。
親フォルダーの親フォルダーも列挙します。
.DeleteFolderPaths
ファイルを削除したときに削除の候補となるフォルダーの相対パスを
列挙します。 削除の候補となるフォルダーは、AddRemove に指定した
パスを含まない親フォルダーです。 フォルダーを削除するときは、候補
となるフォルダーのサブフォルダーも削除してください。
.DeleteFolderExists( Path )
削除の候補となるフォルダーかどうか。
削除の候補となるサブフォルダーにマッチするときは、True
.Keys
辞書に登録したキー（パス）を列挙します。
.AddRemove で除外したパスも列挙します。
.SearchParent
→ Dic_searchParent
指定したパスの親フォルダーのパスを検索します。
→ Dic_addFilePaths_fromPathDirectory
関連
Dic_addFilePaths_fromPathDirectory
で、特定のオブジェクトをアイテムに持つパスを列挙できます。
.IsScaned
.FilePaths, .FullPaths, .FolderPaths に必要なデータを集めるために、フォルダー
を探索したかどうか。 辞書を変更すると False になり、再度探索します。
.IsNotFoundError
.FilePaths で .Key に設定したパスが見つからないエラーを発生するかどうか
Set paths0 = new PathDictionaryClass
Set paths( "Folder" ) = a_object
Set paths = ArrayFromWildcard( paths0 )
Assert paths is paths0
Assert paths( "Folder\File.txt" ) Is a_object
には、パスの文字列だけでなく PathDictionaryClass のオブジェクトでも、どちらでも指定できます。
FilePaths プロパティは、フォルダーの中にある複数のファイルのパスの配列です。
FilePaths プロパティなどに含まれるか含まれないかが期待と異なるときは、PathDictionaryClass の
オブジェクトを生成した直後に、IsDebugLog プロパティを True にして実行して、キーとファイル
パスの関連を一覧表示してください。
Set paths = new PathDictionaryClass
paths.BasePath = "C:\Folder"
Set paths( "Folder" ) = a_object
paths.AddRemove "*.bak"
Assert IsSameArray( paths.FilePaths, Array( "Files\1\A.txt", "Files\1\B.txt" ) )
FilePaths プロパティは、
PathNameCompare
でソートされた配列を取得します。
.RemovedObject
.AddRemove で除外したパスをキーに指定したときの Item
.KeysEx( Opt )
辞書に登録したキー（パス）を列挙します。 ただし、Opt = Me.ExceptRemoved を
指定したときは、.AddRemove で除外したパスを列挙しないようになります。
→ new_PathDictionaryClass_fromXML
参考
FilePaths
"Folder"
"Folder\File.txt"
存在するフォルダーやファイルのパスをキーに指定してください。
AddRemove メソッド
なります。
ただし、
が呼び出してあったら、そのファイルやフォルダーは FilePaths の対象外に
ファイルを一覧するプロパティにアクセスすると、フォルダーの中を探索するため時間がかかります。
PathDictionaryClass のオブジェクトの内容を変更しなければ、キャッシュを使って高速に探索します。
GetBasePath
に対しても、どちらでも指定できます。
.LeafPaths
→ LeafPathDictionary
.FullPaths に空のフォルダーも追加したフル パスの配列。
空のフォルダーを指すパスの末尾には \ が付きます。
関連
.Exists( Path )
辞書に登録したキー（パス）であるかどうかを返します。
.AddRemove で除外したパスも列挙します。
サブ フォルダー記号
が使えます。 例： "folder\*\back_up.txt", "folder\.\*.txt"
キーには、
アイテムには、任意のオブジェクトを指定できます （ただし、オブジェクト型のみ）。
→ サブ フォルダー記号
ファイルのパス、フォルダーのパス、ワイルドカードの間の優先順位を下記に示します。
上にあるほど優先度が高いです。 たとえば、あるファイルが、キーに指定したワイルドカードにマッチ
しつつ、別のキーに指定したフォルダーの中にあるとき、キーにそのファイルのパスを指定すると、
優先順位の高いワイルドカードをキーに指定して代入したアイテムが返ります。
・ファイルのパス（長い）
・ファイルのパス（短い）
・ワイルドカードがあるパス（\ 記号を含み、長い）
・ワイルドカードがあるパス（\ 記号を含み、短い）
・ワイルドカードがあるパス（\ 記号を含まず、長い）
・ワイルドカードがあるパス（\ 記号を含まず、短い）
・フォルダーのパス（長い）
・フォルダーのパス（短い）
*\Debug\ => Debug\a.obj
*\Debug\ => Debug\b.obj
. => a.c
. => b.c
Set paths = new PathDictionaryClass
paths.IsDebugLog = True
paths.FilePaths
一覧表示
スクリプト
.IsDebugLog
キーとファイル パスの関連を一覧表示するかどうか
IsDebugLog
ファイル名のワイルドカードがあるパスより、フォルダーのパスを優先したいときは、Folder\*
のように指定してください。
← ▼ ▲
new_PathDictionaryClass_fromXML
Function new_PathDictionaryClass_fromXML( path_XML_Elements as IXMLDOMNodeList,
AttributeName as string, BasePath as string ) as PathDictionaryClass of IXMLDOMElement
FF-path 属性対応の XML から PathDictionaryClass のオブジェクトを生成します。
【引数】
path_XML_Elements
パスが書かれた XML 要素（タグ）のオブジェクトの集合
AttributeName
通常 "path"。 パスが書かれた XML 属性の名前
テスト
ソース
→ T_Wildcard.vbs
T_PathDictionary_XML
返り値の辞書のアイテムは、XML 要素（タグ）オブジェクト（
→ vbslib.vbs
）になります。
IXMLDOMElement 型
path_XML_Elements 引数には、XML の path 属性がある XML 要素（タグ）の集合を指定します。
→ PathDictionaryClass
PathDictionaryClass のオブジェクト
返り値
XML に書かれた相対パスの基準パス
BasePath
FF-path 属性対応の XML、path 属性と、Except タグ
FF-path 属性 (File or Folder as files Path attribute) は、ファイルのパスを指定する XML の path
属性です。
FF-path 属性が使える XML ファイルには、Variable タグを指定することができます。 そして、
path 属性に、Variable タグの参照を指定することができます。 （例：下記の ${ExceptExts}）
Except タグの path 属性にも、Variable タグの参照を指定することができます。
→ Variable タグ
Except タグを使えば、サブフォルダーの中にあるファイルのうち、指定したファイルやフォルダーを
対象外にすることができます。 Except タグは、FF-path 属性に対応したタグの子ノードとして配置
してください。 ワイルドカードを使って拡張子を指定することができます。 複数指定するときは、
コンマで区切ってください。 相対パスの基準は、XML ファイルがあるフォルダーです。
XML ファイルの仕様によっては、path 属性を持つタグに path 属性以外の属性を指定することが
できます。 （例：下記の Folder タグの attr 属性）
path 属性を持つタグの名前は、"Folder" や "File" 以外の可能性があります。
ファイルを指定する属性が、path 属性でない可能性もあります。
それぞれの名前は、設定する XML ファイルの仕様を参照してください。
path 属性を持つタグの名前に関係なく、空のフォルダーを指定するときは、パスの末尾に
\ を付けてください。
関連
→ SyncFilesX
が使えます。
<Root>
<Variable name="${ExceptExts}" value="*.obj, *.bak"/>
<File path="Sample.txt"/>
<Folder path="SubFolder" attr="ABC">
<Except path="${ExceptExts}"/>
<Except path="SubFolder\Debug"/>
</Folder>
</Root>
C:\FolderA\Sample.xml
Variable name
value
Except
Except
緑色の文字の名前は、FF-path 属性、または Variable タグによって定義された名前です。
上記は、Sample.txt ファイルと、SubFolder フォルダーとそのサブフォルダーの中にあるすべての
ファイルのうち、拡張子が obj と bak のファイルと、SubFolder\Debug フォルダーの中のファイルを
除いたファイルを、指定したことになります。
赤色の文字の名前は、XML ファイルの種類によって異なります。
Folder path
path
path
File path
（new_PathDictionaryClass_fromXML 関数に指定します。）
フォルダーの中の一部のファイルやフォルダーに対して、特別な設定を XML に記述することが
できます。 記述する順番には依存しません。 子ノードの記述が優先されます。
<Folder path="Folder" attr="target">
<Folder path="Folder\back_up" attr="not_target">
サンプル
path_of_XML = "Files\Files1.xml"
base_path = GetParentFullPath( path_of_XML )
Set root = LoadXML( path_of_XML, Empty )
Set dic = new_PathDictionaryClass_fromXML( root.selectNodes( "Folder | File" ), "path", _
base_path )
Assert IsSameArray( dic.FilePaths, Array( _
"Sample.txt", "SubFolder\A.c", "SubFolder\Sub\A.c" ) )
For Each key In dic.FilePaths
Assert dic( key ).getAttribute( "attr" ) = "ABC"
Next
new_PathDictionaryClass_fromXML
selectNodes
下記 Sample.xml の path 属性と Except タグをリードします。
vbslib のワイルドカード
→ GetPathDictionariesFromXML
Set paths = new PathDictionaryClass
paths.BasePath = "C:\FolderA"
Set paths( "Sample.txt" ) = file_tag
Set paths( "SubFolder" ) = folder_tag
paths.AddRemove "*.obj"
paths.AddRemove "*.bak"
paths.AddRemove "SubFolder\Debug"
上記の XML は、下記のコードでできる PathDictionary ができます。
attr="target" の設定は、Folder フォルダーとそのサブ フォルダーが対象ですが、
Folder\back_up フォルダーは対象外です。
Except タグで対象外にしたフォルダーの中のサブフォルダーやファイルを対象にするときは、
Except タグの親ノードの兄弟ノードに指定してください。
<Folder path="A">
<Except path="A\B"/>
</Folder>
<Folder path="A\B\C"/>
A 対象
A\1 対象
A\B 対象外
A\B\1 対象外
A\B\C 対象
A\B\C\1 対象
File, Folder, Except タグに
書かれた相対パスの基準は
すべて同じです。
ファイルのパス、フォルダーのパス、ワイルドカードの間の優先順位を下記に示します。
上にあるほど優先度が高いです。 たとえば、あるファイルが、指定したワイルドカードにマッチ
しつつ、指定したフォルダーの中にあるときは、優先順位の高いワイルドカードを指定した XML
の設定がそのファイルに対して使われます。
・ファイルのパス（長い）
・ファイルのパス（短い）
・ワイルドカードがあるパス（\ 記号を含み、長い）
・ワイルドカードがあるパス（\ 記号を含み、短い）
・ワイルドカードがあるパス（\ 記号を含まず、長い）
・ワイルドカードがあるパス（\ 記号を含まず、短い）
・フォルダーのパス（長い）
・フォルダーのパス（短い）
フォルダーの中にあるファイルが、指定されたか指定されなかったかが期待と異なるときは、
XML に下記の Debug タグを追加して、キーとファイル パスの関連を一覧表示してください。
*\Debug\ => Debug\a.obj
*\Debug\ => Debug\b.obj
. => a.c
. => b.c
<Debug path_dictionary_scan_log="yes"/>
一覧表示
XML
path_dictionary_scan_log
ファイル名のワイルドカードがあるパスより、フォルダーのパスを優先したいときは、Folder\*
のように指定してください。
空のフォルダー C
<Folder path="A\B\C\"/>
\
← ▼ ▲
GetPathDictionariesFromXML
Function GetPathDictionariesFromXML( path_XML_Elements as IXMLDOMNodeList,
AttributeName as string, BasePath as string, MapAttributeName as string )
as dictionary of PathDictionaryClass of IXMLDOMElement
複数の map からなる
【引数】
path_XML_Elements
パスが書かれた XML 要素（タグ）のオブジェクトの集合
AttributeName
通常 "path"。 パスが書かれた XML 属性の名前
PathDictionaryClass
返り値
XML に書かれた相対パスの基準パス
BasePath
のオブジェクトの辞書。キーは、map 属性の値
MapAttributeName
通常 "map"。 map 属性が書かれた XML 属性の名前
new_PathDictionaryClass_fromXML
複数の map に対応した
です。
単一の map の場合、フォルダー(A) にだけ設定があるとき、そのサブ フォルダーまたはファイル(B)
の設定は、(A) から継承されますが（同じ設定になりますが）、(A) と (B) で異なる map を指定した場合、
(B) の設定は、(A) から継承されません。
path
attr
"Folder"
"Folder\A.txt"
"Folder\back_up\A.txt"
"targetB"
"targetB"
"targetB"
テスト
ソース
→ T_Wildcard.vbs
T_PathDictionaries_XML
→ vbslib.vbs
XML の map 属性は、パスを指定する要素の親要素や、さらにその親要素…、に設定することもできます。
<Parent map="B">
<Folder path="Folder" attr="targetB">
</Parent>
map 属性を指定しなかったときは、GetPathDictionariesFromXML の返り値の辞書のキーは "" になります。
FF-path 属性対応の XML
から PathDictionaryClass のオブジェクトを生成します。
map は、XML の map 属性に設定し、返り値（辞書型）のキーに入ります。
map 属性がないXML タグの設定値は、返り値（辞書型）のキーが "" のアイテムに入ります。
<Folder path="Folder" attr="target">
<Folder path="Folder" attr="targetB" map="B">
<Folder path="Folder\back_up" attr="not_target">
map="B"
map の設定があると、map ごとに XML ファイルを分けたようになります。
<Folder path="Folder" attr="target">
<Folder path="Folder\back_up" attr="not_target">
<Folder path="Folder" attr="targetB" map="B">
map = ""
map = "B"
"not_target"
"target"
"target"
"Folder\back_up\A.txt"
"Folder\A.txt"
attr
path
"Folder"
← ▼ ▲
new_PathDictionaryClass
ソース
→ vbslib.vbs
Function new_PathDictionaryClass( in_Path as variant ) as PathDictionaryClass
典型的な PathDictionaryClass のオブジェクトを生成します。
【引数】
in_Path
ファイルやフォルダーのパス
返り値
PathDictionaryClass のオブジェクト
→ PathDictionaryClass
Set paths = new_PathDictionaryClass( "Folder" )
サンプル
in_Path 引数には、文字列、文字列の配列、PathDictionaryClass のいずれかを指定できます。
Set paths = new_PathDictionaryClass( Array( "FolderA", "FolderB" ) )
Set paths = new_PathDictionaryClass( "Folder" )
Set paths2 = new_PathDictionaryClass( paths )
Assert paths is paths2
← ▼ ▲
new_PathDictionaryClass_withRemove
Function new_PathDictionaryClass_withRemove( in_BasePath as string,
in_RemovePathArray as array of string, in_DictionaryItem as Object )
as PathDictionaryClass
ソース
→ vbslib.vbs
除外するファイルやフォルダーがある、１つのフォルダーの PathDictionaryClass のオブジェクトを生成します。
【引数】
in_BasePath
ベースとなる１つのフォルダー
in_RemovePathArray
除外するファイルやフォルダーの相対パスの配列、または Empty
PathDictionaryClass のオブジェクト
返り値
生成する辞書のすべての Item に設定するオブジェクト
in_DictionaryItem
→ PathDictionaryClass
サンプル
Set dic = new_PathDictionaryClass_withRemove( "Folder", Array( "*.bak" ), Nothing )
Assert dic.BasePath = "C:\Folder"
Assert IsSameArray( dic.Keys, Array( "." ) )
in_RemovePathArray 引数に指定する相対パスの基準フォルダーは、in_BasePath です。
← ▼ ▲
GetBasePath
Assert GetBasePath( "C:\Folder" ) = "C:\Folder"
Function GetBasePath( in_StringOrObject as variant ) as string
ベースのパスを返します。
【引数】
in_StringOrObject
文字列、または、
ベースのパス
返り値
関連
サンプル
ソース
PathDictionaryClass
Set paths = new PathDictionaryClass
paths.BasePath = "C:\BaseFolder"
Assert GetBasePath( paths ) = "C:\Folder"
in_StringOrObject 引数が文字列のときは、その文字列を返します。
PathDictionaryClass 型のときは、BasePath プロパティを返します。
→ vbslib.vbs
→ ArrayFromWildcard
Assert GetFullPath( GetBasePath( paths ), Empty ) = "C:\Folder\sub"
GetBasePath
GetBasePath
GetBasePath
← ▼ ▲
LeafPathDictionary
ExpandWildcard_Sort 変数
を True に設定すると、辞書のキーをABC順にソートします。
LeafPathDictionary は、キーを「ファイル、または、空のフォルダーのパス」とした辞書です。
型は、標準で用意されている辞書と同じです。
キーに設定したパスは、ファイルまたはフォルダーが存在しない可能性があります。
LeafPathDictionary のアイテム（NameOnlyClass などのオブジェクト）の Name プロパティは、
キーと同じパス、または、存在するファイルまたはフォルダーへのパスです。
キーに関連付けられたアイテムの Name プロパティ以外は、ユーザーが自由に設定できます。
Name プロパティ以外のプロパティは、LeafPathDictionary からアクセスしません。
Set dic( "To2.txt" ) = dic( "To.txt" )
Set dic.Remove "To.txt"
→ EnumerateToLeafPathDictionary
Const NotCaseSensitive = 1
Set dic = CreateObject( "Scripting.Dictionary" )
dic.CompareMode = NotCaseSensitive
Set dic( "To.txt" ) = new_NameOnlyClass( "From.txt", Empty )
辞書のアイテムを変更することで、コピー元を変更することができます。
Set dic( "To.txt" ) = new_NameOnlyClass( "From2.txt", Empty )
辞書のキーを変更することで、コピー先を変更することができます。
アイテムにあるパスから、キーにあるパスに、ファイルをコピーすることで、多くのファイルを集める処理に
使えます。 ファイルを置き換えるパッチをあてるときにも使えます。
フォルダーから、
LeafPathDictionary
を生成します
→ CopyFilesToLeafPathDictionary
→ ChangeKeyOfLeafPathDictionary
キーに書かれたパスを変更します
ファイルまたはフォルダーをコピーします
テスト
→ T_LeafPath.vbs
T_LeafPath
関連
→ PatchAndBackUpDictionaryClass
new_NameOnlyClass
False に設定しても、下記のコードを実行すればソートできます。
QuickSortDicByKey dic
→ ChangeKeyOfLeafPathDictionary
関連
QuickSortDicByKey
LeafPathDictionary のアイテムの Name プロパティが文字列の配列のときは、
ThreeWayMerge
した内容にする予定であることを示します。 (0) = Base, (1) = Left, (2) = Right です。
LeafPathDictionary のアイテムの Name プロパティが Empty のときは、削除する予定である
ことを示します。
２つのフォルダーを比較するときに、比較するファイルの名前や場所が異なるときは、関連するパスを
キー、ファイルの内容をアイテムにすることで、比較ができます。 マージするときは、マージした後の
パスに相対パスを合わせたパスをキーにするとよいでしょう。
→ PathDictionaryClass
→ ExpandWildcard
.LeafPaths
の c.EmptyFolder
LeafPathDictionary を参照する処理によっては、キーしか参照しません。
また、キーをコピー先、アイテムの Name プロパティをコピー元として処理することがあります。
→ PatchAndBackUpDictionaryClass
パッチ
→ NewDiffFilePaths
Dic_addNewObject
と
← ▼ ▲
EnumerateToLeafPathDictionary
Function EnumerateToLeafPathDictionary( in_FolderPath as string ) as dictionary of NameOnlyClass
【引数】
in_FolderPath
調べるフォルダーのパス
返り値
テスト
ソース
<< LeafPathDictionary
フォルダーから、LeafPathDictionary を生成します。
LeafPathDictionary
→ T_LeafPath.vbs
T_LeafPath
→ ToolsLib.vbs
返り値の要素のキーと、アイテムの .Name には、フル パスが格納されます。
そのフル パスが空のフォルダーを指していても、キーの末尾は \ ではありません。
ExpandWildcard_Sort 変数
でソートできます。
← ▼ ▲
EnumerateToLeafPathDictionaryByFullSetFile
Function EnumerateToLeafPathDictionaryByFullSetFile( in_FolderPath as string,
in_MD5ListFilePath as string, in_EmptyOption as Empty ) as dictionary of MD5ListLeafClass
【引数】
in_FolderPath
調べるフォルダーのパス
返り値
テスト
ソース
、または、フォルダーから、LeafPathDictionary を生成します。
LeafPathDictionary
→ T_LeafPath.vbs
T_LeafPathWithFullSet
→ ToolsLib.vbs
ExpandWildcard_Sort 変数
でソートできます。
<< LeafPathDictionary
参照する _FullSet.txt ファイルは、in_FolderPath 引数のフォルダーの直下にある _FullSet.txt ファイルです。
_FullSet.txt ファイル
EnumerateToLeafPathDictionary
_FullSet.txt ファイルが無ければ、
と同じ動きをします。
ファイルが存在するときは、_FullSet.txt ファイルの中にそのファイルのパスがあってもなくても、存在する
ファイルに関する情報が返り値に含まれます。 ただし、ハッシュ値が同じときは、タイムスタンプに関して
のみ _FullSet.txt ファイルに書かれたタイムスタンプが返り値に含まれ、ファイルのタイムスタンプは無視
されます。
_FullSet.txt ファイルの中にあるパスにファイルが存在しないときは、_FullSet.txt ファイルに書かれた
情報が返り値に含まれます。
返り値のキーが空のフォルダーを指していても、キーの末尾は \ ではありません。
in_EmptyOption
Empty を指定してください
in_MD5ListFilePath
存在するファイルの MD5 リストのファイル パスなど（下記）
OpenForDefragment
MD5ListLeafClass
.Name
ファイル、または、フォルダーの相対パス。
Empty になることはありません。
.HashValue
string
string
.TimeStamp
.BodyFullPath
string
string
ファイルのハッシュ値
→ MD5
ファイルのタイムスタンプ。 形式は、
存在するファイルやフォルダーのパス。 存在しないときは Empty。 ただし、
_FullSet.txt ファイルがあり、in_MD5ListFilePath に同じハッシュ値があったら、
in_MD5ListFilePath に記録されたパスのフル パス。 ただし、そのパスに
ファイルやフォルダーがあることがチェックされていないことがあります。
ファイルが存在するなら、
EnumerateToLeafPathDictionaryByFullSetFile 関数
の中で計算したハッシュ値が入ります。 このハッシュ値は、_FullSet.txt
ファイルに書かれたハッシュ値と異なることがあります。
Empty になることはありません。
ファイルが存在するなら、
EnumerateToLeafPathDictionaryByFullSetFile 関数
を呼び出したときのファイルのタイムスタンプが入ります。 ただし、ファイルの
ハッシュ値が _FullSet.txt に書かれたハッシュ値と同じときは、_FullSet.txt
ファイルに書かれたタイムスタンプが入ります。 このハッシュ値は、ファイルの
タイムスタンプと異なることがあります。
ファイルが存在せず、_FullSet.txt ファイルの中にタイムスタンプの記録が
なければ、Empty になります。
EmptyFolderTimeStamp
_FullSet.txt の中
ファイルシステム
なし
返り値
EmptyFolderTimeStamp
あり(*1)
あり（同じハッシュ値）
なし
あり
あり
なし
あり（違うハッシュ値）
あり(*1)
_FullSet.txt の中の日時
ファイルのタイムスタンプ
_FullSet.txt の中の日時
ファイルのタイムスタンプ
空のフォルダー
なし
EmptyFolderTimeStamp
なし
なし
Empty
ファイルのハッシュ値
_FullSet.txt の中のハッシュ値
ファイルのハッシュ値
あり
なし
あり
なし
あり(*1)
返り値
ファイルシステム
_FullSet.txt の中
あり
ファイルが存在しないなら、 _FullSet.txt ファイルに書かれたハッシュ値が入り
ます。
(*1) _FullSet.txt に書かれたハッシュ値と、ファイルのハッシュ値が異なること
があります
(*1) _FullSet.txt に書かれた日時と、ファイルのタイムスタンプが異なること
があります
EmptyFolderTimeStamp
空のフォルダー
EmptyFolderTimeStamp
参考
→ 空のフォルダーの MD5
W3CDTF。
空のフォルダーなら get_ToolsLibConsts()EmptyFolderTimeStamp。
in_MD5ListFilePath 引数
Empty を指定したときは、MD5ListLeafClass::BodyFullPath が Empty になる可能性が高まります。
of
MD5ListLeafClass
MD5ListLeafClass
::Name が指すパスにファイルまたはフォルダーがないときに MD5ListLeafClass::
BodyFullPathを設定するために参照される
MD5 リスト
のパス、または、
の返り値。
EnumerateToLeafPathDictionaryByFullSetFile 関数の返り値のアイテムの型。
返り値のキーとアイテムは、
←
↓