.NET开发

本类阅读TOP10

·NHibernate快速指南(翻译)
·vs.net 2005中文版下载地址收藏
·【小技巧】一个判断session是否过期的小技巧
·VB/ASP 调用 SQL Server 的存储过程
·?dos下编译.net程序找不到csc.exe文件
·通过Web Services上传和下载文件
·学习笔记(补)《.NET框架程序设计(修订版)》--目录
·VB.NET实现DirectDraw9 (2) 动画
·VB.NET实现DirectDraw9 (1) 托管的DDraw
·建站框架规范书之——文件命名

分类导航
VC语言Delphi
VB语言ASP
PerlJava
Script数据库
其他语言游戏开发
文件格式网站制作
软件工程.NET开发
VB之Win32 API编程--判断本地或远程文件是否存在的简易方法

作者:未知 来源:月光软件站 加入时间:2005-2-28 月光软件站

中午休息时,在FOX API(我常用的Win32 API浏览器)上发现了一个简单极好用的Win32API函数,是用来判断本地文件或远程机器文件是否存在的:

1.   Private Declare Function PathFileExists Lib "shlwapi.dll" Alias "PathFileExistsA" (ByVal pszPath As String) As Long

这是封装在Shell32.DLL系统文件里的一个函数,既可以判断本地文件是否存在,又可以判断远程电脑上的文件是否存在。函数返回值是个Long型变量,返回两个值0,1。1表示文件存在(True),0表示文件不存在(False)。而且只有一个参数szPath,是个字符串变量,如果要判断本地的文件是否存在其路径可写为:”C:\Windows\Config\SysBook.Txt”),如果文件在远程电脑上,其路径可写为(假设对方电脑IP为192.168.0.2)

"\\192.168.0.2\d$\javatools\somefile.txt",如果其电脑名为WorkStation可写为

“\\workstation\javatools\somefile.txt",当然这个函数还可以查找网站上的网页文件如:"http://www.microsoft.com/ms.htm"

我们可以写个简单的自定义公用函数来完成这个功能,在自定义函数里调用这个API函数

Public Function GetFileExists(ByVal FileName As String) As Boolean
    If FileName = "" Then
        MsgBox "请输入文件名", vbInformation, "提示"
        Exit Function
    Else
        GetFileExists = CBool(PathFileExists(FileName))
    End If
End Function

在窗体界面上加一按钮,和一文本框

Private Sub Command1_Click()
    Dim T As Boolean
    T = GetFileExists("F:\it\Develope\Retail\Bill\vssver.scc")
    If T = True Then
        Text1.Text = "该文件存在"
    Else
        Text1.Text = "该文件不存在"
    End If
End Sub

当然GetFileExists其中的参数还可以写成

"\\192.168.0.2\d$\javatools\somefile.txt"

"\\workstation\javatools\somefile.txt"

"http://www.microsoft.com/ms.htm"

这个函数除了能判断文件是否存在外,还可以判断本地或远程文件夹

是否存在,我觉得这要比用Dir这个VB自带函数来判断文件是否存在要好用多了,而且也不需要调用FileSystemObject组件来操作了。

 




相关文章

相关软件