4

ユーザーが Outlook 電子メールの添付ファイルから Windows のクリップボードにファイルをコピーした場合、VB.NET でそのファイルの名前を取得する方法はありますか?

ファイルが Windows エクスプローラーからコピーされた場合、Clipboard.GetFileDropListこれを取得するために使用できるデータがありますが、ファイルが電子メールの添付ファイルからコピーされた場合、そのリストは空です (使用可能な形式FileGroupDescriptorWは 、FileGroupDescriptorRenPrivateItemおよびの 4 つだけですFileContents)。

ファイルを Windows エクスプローラーに貼り付けることができ、添付ファイルの名前で貼り付けられるので、これは可能であるように感じます。

4

1 に答える 1

5

形式がFileGroupDescriptor. ただし、コードは少し難解です。

Dim fileName As New StringBuilder("")
Dim theStream As Stream = Clipboard.GetData("FileGroupDescriptor")
Try
    Dim fileGroupDescriptor(512) As Byte
    theStream.Read(fileGroupDescriptor, 0, 512)

    Dim i As Integer = 76
    While fileGroupDescriptor(i) <> 0
        fileName.Append(Convert.ToChar(fileGroupDescriptor(i)))
        i += 1
    End While
Finally
    If theStream IsNot Nothing Then theStream.Close()
End Try
于 2008-11-18T19:51:04.770 に答える