NameSpaceオブジェクトでファイルを指定するには?

解決


Limg  2004-07-28 05:33:48  No: 84817  IP: [192.*.*.*]

現在、エクスプローラもどきみたいなものを作成していて、
NameSpaceオブジェクトを使用して他アプリ間とのコピー&ペーストをしようとしているのですが、
自分のアプリ側でファイルをコピーしようとすると、
NameSpaceオブジェクトのところで「ファイルが見つかりません。」といわれてしまいます。
フォルダーは問題ないのですが。。。

下記にソースを載せます。

Set oShell = CreateObject("Shell.Application")
    Set oExplorer = CreateObject("InternetExplorer.Application")
    oExplorer.Navigate2 txtDirPath.Text
    oExplorer.Visible = False    '表示/非表示の切り替え
    
    Do
       DoEvents
    Loop Until oExplorer.readystate = 4

    Set oSFView = oExplorer.Document
    
    iIndex = lvwTemp.ListItems.Count
    For i = 1 To iIndex
        If lvwTemp.ListItems(i).Selected Then
            strPath = txtDirPath.Text & "\" & lvwTemp.ListItems(i).Text
            oSFView.SelectItem oShell.NameSpace(CVar(strPath)).Items().Item(), 1
        End If
    Next i
    
    
    Set oFItems = oSFView.SelectedItems
    i = oFItems.Count
    
    For Each oFVerb In oFItems.Verbs
        If oFVerb.Name Like "コピー*" Then
            oFVerb.DoIt
            Exit For
        End If
    Next
    
    oExplorer.Quit
    Set oFItems = Nothing
    Set oSFView = Nothing
    Set oShell = Nothing

何か間違っているのか教えてください。

編集    削除
あなご  2004-07-28 16:50:42  No: 84818  IP: [192.*.*.*]

> oSFView.SelectItem oShell.NameSpace(CVar(strPath)).Items
だと、ShellFolderViewのFolderItemとは関係ないでしょう。
こうすれば、いいのかな?
oSFView.SelectItem oSFView.Folder.ParseName(lvwTemp.ListItems(i).Text), 1

> For Each oFVerb In oFItems.Verbs
おそらく、エラーでしょう。

編集    削除
Limg  2004-07-28 17:26:06  No: 84819  IP: [192.*.*.*]

> oSFView.SelectItem oShell.NameSpace(CVar(strPath)).Items
だと、ShellFolderViewのFolderItemとは関係ないでしょう。
こうすれば、いいのかな?
oSFView.SelectItem oSFView.Folder.ParseName(lvwTemp.ListItems(i).Text), 1

上記部分を変更したらうまくいきました。

あなごさん、ありがとうございました。

編集    削除