vb.net의 이메일 첨부 파일에서 클립 보드에 복사 된 파일 이름 받기
문제
사용자가 Outlook 이메일 첨부 파일에서 Windows의 클립 보드에 파일을 복사하면 vb.net에서 해당 파일 이름을 얻을 수있는 방법이 있습니까?
파일이 Windows 탐색기에서 복사 된 경우 Clipboard.GetFileDropList
이를 얻기 위해 사용할 수있는 데이터가 있지만 파일이 이메일 첨부 파일에서 복사 될 때 해당 목록이 비어 있습니다 (사용 가능한 4 가지 형식 만 있습니다. FileGroupDescriptorW
, FileGroupDescriptor
, RenPrivateItem
그리고 FileContents
).
파일을 Windows 탐색기에 붙여 넣을 수 있고 첨부 파일의 이름으로 붙여 넣을 수 있기 때문에 이것이 가능하다고 느낍니다.
해결책
형식이있는 데이터 객체에서 파일 이름을 얻을 수 있다는 것이 밝혀졌습니다. 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
제휴하지 않습니다 StackOverflow