vb.net의 이메일 첨부 파일에서 클립 보드에 복사 된 파일 이름 받기

StackOverflow https://stackoverflow.com/questions/299805

문제

사용자가 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
라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top