求VB高手 怎么判断一个文件时文本文件,不要说用扩展名判断

我要的效果是:读取某个文件夹,取得所有文件名,然后如果是文本文件的话,再取得它的行数。

因为文件的扩展名可以改的嘛,比如txt可以改成exe,所以排除用扩展名判断的办法。
一般常见的文本文件也有txt,bat,log,vbs,ini,java,html等还有好多,也可以随便起一个扩展名,所以一个个判断是不太可能的。

求高手赐教。有没有什么方法?

第1个回答  2012-12-16
其实,所有文件,都能用记事本打开,只不过,某些打开来的内容是乱码(看不懂),记事本的工作原理你得弄明白:它是把文件中的内容能用字符串表示的就全用字符串表示了,表示不了的,就可能用空字符来表示。
关于,你的工程,用这种方法去打开文件,当然是可以被打开,且不会有错。
至于,有什么方法来识别是否是文本文件,那可能就不好解决了。有必要读取文件全部内容,逐一判断,这会让人崩溃的。
第2个回答  2012-12-11
如果每个字符都是常见的字母或数字或中文或符号或其它?
还有,rtf,doc等等如果不包含图像的的话,也属于文本文档的范畴,它里面的图像都是用二进制存储的,可以排除二进制的头部或者尾部,你还能列举出多少后缀名?
最后给楼主一个实用的方法,读取注册表,看看记事本关联了哪些格式,能这样就差不多了,就不要不满足了,因为你列举的vbs,html等文件在装有vb运行库,IE等的系统中是不会被看作是文本文件的...追问

我所谓的文本文件就是能用记事本编辑的。
就算doc文件里只有文本那也是二进制存储啊。。
而且有些文本文件并不能说跟记事本关联了啊。。。

我本以为如果是非文本文件,在做下面处理时会报错呢,结果还能继续执行,,,

Set objStream = objfso.OpenTextFile(strPath, 1, True)

没有更好的办法吗???

本回答被网友采纳
第3个回答  2012-12-21
这个简单,自己找规律.
ANSI文本文件不会包含ASCII为&H00的这个字符
开头为&HFFFE或&HFEFF文本文件不会包含ASCII为&H0000的这个双字符

这个条件排除了,基本上:可执行程序,音频视频图像,压缩包,rtf,office文档等等,都会被排除.
剩下的基本上都是"文本文件"了.
第4个回答  2012-12-19
很混淆,,很难达到你要求..

求VB高手 怎么判断一个文件时文本文件,不要说用扩展名判断
其实,所有文件,都能用记事本打开,只不过,某些打开来的内容是乱码(看不懂),记事本的工作原理你得弄明白:它是把文件中的内容能用字符串表示的就全用字符串表示了,表示不了的,就可能用空字符来表示。关于,你的工程,用这种方法去打开文件,当然是可以被打开,且不会有错。至于,有什么方法来...

怎样用VB获取文件的文件名(不要包含扩展名)
Dim a As String a = System.IO.Path.GetFileNameWithoutExtension("c:\\windows\\test123.txt123")Me.Text = a End Sub

怎样用vb判断指定位置是否存在指定文件
VB使用Dir函数判断制定文职是否存在指定文件。Dir 函数 ,返回一个 String,用以表示一个文件名、目录名或文件夹名称,它必须与指定的模式或文件属性、或磁盘卷标相匹配。Dir 函数示例 本示例使用 Dir 函数来检查某些文件或目录是否存在。在 Macintosh 计算机上,默认驱动器名称是 “HD” ,并且路径部分由...

怎么用VB打开一个文件
1.如果读取的是文本型文件(用记事本打开没有乱码的),就是顺序文件读法:open app.path & "\\index.pps" for input as #1 顺便说,app.path是反回当前程序路径的函数,故不能加引号,如果加了,若无其它错误,程序一定会报文件错误,因它找不到 "app.path\\index.pps"这样的路径与文件 2.如果...

vb中如何判断text文件中光标的位置,并在光标所在行的下一行插入一行数...
先来说一下vb中如何将指定的内容写入到一个txt文本文件中。有一套基本的代码,如下:1.如果想要使目标txt文件不保留原来的文字内容,将所有的内容变成你要指定的内容,则 Open "这里打上txt文件的全路径,包括扩展名" For Output As #1 路径也可以用一个字符串变量来指定。如果想要使目标txt文件在...

求VB高手给个方法,不用Combo1.AddItem,在窗体加载时combo
1、你的问题不够明朗,不懂你在问什么 2、combo控件的下来列表的内容必须用additem 来添加 3、获取当前路径下的mp3文件,方法有很多,你可以用filelistbox 如下代码:File1.Path = "c:\\User\\Documents\\Music\\"'这里写的是你需求的路径 File1.Pattern = "*.mp3"Dim i As Integer Dim s For i...

VB如何判断一个文件是否是JPG文件
'测试图片文件是否为JPG或JPEG文件(与文件扩展名无关)'参数说明:Filename 要测试的图片文件名,返回值为逻辑型 '调用举例:if TestJpgFile("c:\\1.jpg")=True then msgbox "是JPG文件"Function TestJpgFile(Filename As String) As Boolean Dim i As Integer, S As String, bb() As Byte If...

给文件命名如果不用扩展名会怎样?
不会怎么样的。打开比较麻烦而已。那只是一个名字。扩展名就是告诉系统,你要用什么程序打开这个文件。如果没有扩展名,电脑就不知道用什么程序打开它,这样你就要自己知道并且选择要打开这个文件的程序。大部分时候,这还是能正常打开的,因为文件的内容没有发生改变。比如,我把一个文本文件txt的扩展名...

怎么将一个文件名中取出不带后缀的文件名?使用vb
Path.GetFileNameWithoutExtension 方法。自己查找name里.的位置然后取到前面也行,就是没重新发明轮子的必要。

用vb如何判断文件扩展名是否为doc,大小写不区分?需要vb代码!急需!谢谢...
Function checkDoc(strFile As String) As Boolean If LCase(Right(strFile, 3)) = "doc" Then checkDoc = True Else checkDoc = False End If End Function Private Sub Command1_Click()MsgBox checkDoc("c:\\123.DOC")End Sub

相似回答