VB 拖拽打开TXT

VB 拖拽打开TXT,第1张

Private Sub Form_Load()

'这2行设置是窗体或文本框可拖放的关键

Me.OLEDropMode = 1

Me.Text1.OLEDropMode = 1

End SubPrivate Sub Form_OLEDragDrop(Data As DataObject, Effect As Long, Button As Integer, Shift As Integer, X As Single, Y As Single)

'由于OLE拖放不一定是文件,先检查是不是文件列表,如果文件数少于1就取消拖放处理

If Data.Files.Count <1 Then Exit Sub

Dim tFile As String

'拖入的文件可能是一组或单个,取得第一个就行了, Item 数组的下界是1而不是0,这有点特别

tFile = Data.Files.Item(1)

'简单的文件类型检查

If UCase(Right(tFile, 4)) <>".TXT" Then

MsgBox "拖放的文件不是 TXT 文件", vbInformation

Exit Sub

End If

'以下是打开文本文件,二进制方式打开

Dim tFree As Integer

Dim tTxt As String

tFree = FreeFile

Open tFile For Binary As tFree

tTxt = Space(LOF(tFree))

Get #tFree, 1, tTxt

Close tFree

Me.Text1.Text = tTxt

End SubPrivate Sub Text1_OLEDragDrop(Data As DataObject, Effect As Long, Button As Integer, Shift As Integer, X As Single, Y As Single)

'调用窗体的拖放处理,确保拖到文本框的文件也能打开

Call Form_OLEDragDrop(Data, Effect, Button, Shift, X, Y)

End Sub

有时候,想实现以下功能:跳转到文件管理器,让用户选择一个文件,并获取用户选择的结果。

跳转到文件管理器可以如下Intent跳转简单实现:

//打开文件管理器

Intent i = new

Intent(Intent.ACTION_GET_CONTENT)

i.setType("file/*")

startActivity(i)

为了获取用户选择的结果,最好是startActivityForResult()方法,以便在onActivityResult()中获取用户所选择的结果。

假设当前的需求是让用户选择一张图片。

Intent i = new Intent(Intent.ACTION_GET_CONTENT)

i.setType("image/*")

startActivityForResult(i, MY_REQUEST_CODE)

此时会d出对话框,询问要以什么方式来打开,一般可选项有图库(系统自带的,如果有的话)和文件管理器(如果有的话)。

用户选择了一个文件后,会返回原Activity,在onActivityResult()方法里,可如下 *** 作以判断文件类型。

@Override

protected

void onActivityResult(int requestCode, int resultCode, Intent data) {

if(requestCode ==

PHOTO_REQUEST_CODE)//自定义的一个static final int常量

{

if(resultCode

== RESULT_OK)

{

//得到文件的Uri

Uri

uri = data.getData()

ContentResolver

resolver = getContentResolver()

//ContentResolver对象的getType方法可返回形如content://的Uri的类型

//如果是一张图片,返回结果为image/jpeg或image/png等

String

fileType =

resolver.getType(uri)

if(fileType.startsWith("image"))//判断用户选择的是否为图片

{

//根据返回的uri获取图片路径

Cursor

cursor = resolver.query(uri,

new

String[]{MediaStore.Images.Media.DATA}, null, null, null)

cursor.moveToFirst()

String

path =

cursor.getString(cursor.getColumnIndex(MediaStore.Images.Media.DATA))

//do

anything you want

}

}

}

}

我在网上看到不少童鞋说,获取文件的路径,然后根据后缀名来判断是否为图片类型。我个人觉得这样比较繁琐而且不太靠谱,可能会漏掉一些图片后缀名的判断。

所以我采用了上述的方法来判断图片的类型。其它文件类型可以类似 *** 作。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/tougao/12113764.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-21
下一篇 2023-05-21

发表评论

登录后才能评论

评论列表(0条)

保存