none
IMAPI2 によってディスク上にディレクトリを作り、その階層下へHDDのディレクトリをコピーする方法 RRS feed

  • 質問

  • 環境はWindows10、Excel2013 VBAにてツール、参照設定
    Microsoft IMAPI2 Base Functionality
    Microsoft IMAPI2 File System Image Creator
    をチェック、CDへ書き込んだところルートディレクトリE:\にテストとMyHDDFolder以下を書き込むことが出来ましたが、
    E:\テストのディレクトリ「テスト」内にハードディスクのディレクトリツリー「MyHDDFolder」を入れて、E:\テスト\MyHDDFolderとする方法がわかりません教えて下さい。
    .
    .
    .
    .
    Dim SI As New IMAPI2FS.MsftFileSystemImage
    Dim DDir As IFsiDirectoryItem
    Dim d As IFsiDirectoryItem
    .
    .
    .
    Set DDir = SI.Root
    Set d = SI.CreateDirectoryItem("テスト") 'ディスク上にディレクトリを作る
    Call DDir.Add(d)
    Call DDir.AddTree("C:\MyHDDFolder", True)
    DDir.Add IFsiItem
    .
    .
    .
    2016年12月27日 23:16

回答

  • CreateDirectoryItemで作成したディレクトリに対して、AddTreeを行えばできます。

    Sub test()
        Dim DiscMaster As New MsftDiscMaster2
        Dim recorder As New MsftDiscRecorder2
        Dim DataWriter As New MsftDiscFormat2Data
        
        Dim SI As New IMAPI2FS.MsftFileSystemImage
        Dim DDir As IFsiDirectoryItem
        Dim d As IFsiDirectoryItem
        
        RecorderId = DiscMaster(0)
        recorder.InitializeDiscRecorder (RecorderId)
        SI.FileSystemsToCreate = (FsiFileSystems.FsiFileSystemISO9660 Or FsiFileSystems.FsiFileSystemJoliet)
        SI.VolumeName = "TestVOL"
        
        Set DDir = SI.Root
        Set d = SI.CreateDirectoryItem("テスト") 'ディスク上にディレクトリを作る
        Call DDir.Add(d)
        Call d.AddTree("C:\MyHDDFolder", True)
        
        DataWriter.recorder = recorder
        DataWriter.ClientName = "IMAPIv2 TEST"
        Dim BurnResult As Object
        Set BurnResult = SI.CreateResultImage()
        DataWriter.Write (BurnResult.ImageStream)
    End Sub
    

    • 回答としてマーク bolbox 2016年12月28日 3:01
    2016年12月28日 2:38