本文目录一览:
- 1、vb.net,知道一个文件的扩展名,如何通过这个扩展名获得该文件的默认打开方式(即默认打开程序)?
- 2、vb.net Path方法
- 3、C#,VB.net,二进制流转回Word的时候能否知道他的文件名和后缀
- 4、vb.net从文件路径中获取文件名
- 5、VB.NET 筛选指定目录下的指定文件(扩展名)
- 6、vb.net中怎么判断文件类型
vb.net,知道一个文件的扩展名,如何通过这个扩展名获得该文件的默认打开方式(即默认打开程序)?
如没有现存的办法的话只能读取注册表,以txt文件为类:
HKEY_CLASSES_ROOT\.txt '在这个地址有个默认属性值是:txtfile
HKEY_CLASSES_ROOT\txtfile\shell\open\command '这里的默认属性值txtfile的关联程序:%SystemRoot%\system32\NOTEPAD.EXE %1-vb.net获取文件扩展名
我暂不了解vb.net读注册表函数(刚在学),以vbs为类:
Dim WshShell
Set WshShell = WScript.CreateObject("Wscript.Shell")
Dim Ext
ext= WshShell.RegRead ("HKEY_CLASSES_ROOT\.mp3\") '这里的扩展名.mp3可以改成其它的看看
MsgBox WshShell.RegRead ("HKEY_CLASSES_ROOT\" ext "\shell\open\command\")
vb.net Path方法
总觉得你在一次循环里Add了两次,怪怪的。你所谓的“第二个”其实还是第一个,只是因为它只显示扩展名而已。获取的文件名已经包含扩展名了,不需要再处理,所以删去第二个Add。如果你有特殊需要的话,不妨写出来,或者把整段代码弄过来-vb.net获取文件扩展名
———(手机不能追答只能修改)———
你的等于号在用于对象时,不是赋值,而是引用的意思。dirs=fis后,fis变成什么,dirs也会跟着变成什么,因为这时的dirs就是fis的引用(也就是帽子啦),而不是一个真正的对象副本。
C#,VB.net,二进制流转回Word的时候能否知道他的文件名和后缀
无法直接获取,但可以采用变通的方法,思路:
把word转换成二进制流前先用变量把拓展名和后缀获取到(例如 var filename = “xxxx.doc”)
定义一个int变量记录二进制流(word)的长度。并将该变量转成4字节的btye[]数组
将第一步中获取到的文件名字符串转成byte[]数组。
将字节按照: word文件byte[]+文件名byte[]+word文件长度byte[](第二步)按照顺序拼接成一个byte[]数组
还原:
1.首先读取总byte[]的后4个字节,以确定文件二进制流的有效长度(假设为L).
2.将索引0至L 之间的字节数组按常规方式恢复成流.
3.将索引L至N-4之间的字节数组还原成字符串,即可获得原文件名.
然后,爱咋咋地~~~~
vb.net从文件路径中获取文件名
获取方法,参考实例如下:
'获取路径名各部分:
如:
c:\dir1001\aaa.txt
'获取路径路径
c:\dir1001\
Public
Function
GetFileName(FilePathFileName
As
String)
As
String
'获取文件名
aaa.txt
On
Error
Resume
Next
Dim
i
As
Integer,
J
As
Integer
i
Len(FilePathFileName)
J
InStrRev(FilePathFileName,
"\")
GetFileName
Mid(FilePathFileName,
J
+
1,
i)
End
Function
''获取路径路径
c:\dir1001\
Public
Function
GetFilePath(FilePathFileName
As
String)
As
String
'获取路径路径
c:\dir1001\
On
Error
Resume
Next
Dim
J
As
Integer
J
InStrRev(FilePathFileName,
"\")
GetFilePath
Mid(FilePathFileName,
1,
J)
End
Function
'获取文件名但不包括扩展名
aaa
Public
Function
GetFileNameNoExt(FilePathFileName
As
String)
As
String
'获取文件名但不包括扩展名
aaa
On
Error
Resume
Next
Dim
i
As
Integer,
J
As
Integer,
k
As
Integer
i
Len(FilePathFileName)
J
InStrRev(FilePathFileName,
"\")
k
InStrRev(FilePathFileName,
".")
If
k
Then
GetFileNameNoExt
Mid(FilePathFileName,
J
+
1,
i
-
J)
Else
GetFileNameNoExt
Mid(FilePathFileName,
J
+
1,
k
-
J
-
1)
End
If
End
Function
'=====
'获取扩展名
.txt
Public
Function
GetFileExtName(FilePathFileName
As
String)
As
String
'获取扩展名
.txt
On
Error
Resume
Next
Dim
i
As
Integer,
J
As
Integer
i
Len(FilePathFileName)
J
InStrRev(FilePathFileName,
".")
If
J
Then
GetFileExtName
".txt"
Else
GetFileExtName
Mid(FilePathFileName,
J,
i)
End
If
End
Function
VB.NET 筛选指定目录下的指定文件(扩展名)
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click-vb.net获取文件扩展名
Dim a As String = "c:\windows\system"
For Each ws In My.Computer.FileSystem.GetFiles(a)
Dim kzm As String = ws.Substring(InStrRev(ws, "."), ws.Length - InStrRev(ws, ".")) '定义扩展名变量-vb.net获取文件扩展名
If kzm = "mp4" Or kzm = "avi" Or kzm = "flv" Then '这里一定要注意扩展名的大小写,如aviAVI的
Me.ListBox1.Items.Add(ws)
End If
Next
End Sub
vb.net中怎么判断文件类型
这个问题可以用注册表解决。
Function getOpenCommand(fileExt As String) as String
Dim fileType as String, openCommand as String
fileExt = "." + fileExt
'取得文件扩展名在注册表里的文件类型名称
'比如.zip的类型名称一般是zipfile
fileType = 读取注册表的classes_root下的子键(fileExt)的默认键值
'取得打开这种文件的程序
openCommand = 读取注册表的classes_root下的子键(fileType + "\shell\open\command")的默认键值
Return getOpenCommand
End Function
读取注册表的HKEY_CLASSES_ROOT下的子键的默认键值的方法可以在网上搜索到。
这样getOpenCommand("doc")就可以得到一个字符串(包括引号):
"C:\Program Files\Word\word.exe" "%1"
这里只需要用Spilt函数把C:\Program Files\Word\word.exe分离出来就好了