vb.net 使用 DIR 遍历文件目录

原文地址

Dir 函数示例
本示例使用 Dir 函数来检查某些文件或目录是否存在。在 Macintosh 计算机上,默认驱动器名称是 “HD” ,并且路径部分由冒号取代反斜线隔开。而且 Microsoft Windows 的通配符在 Mac 中可以作为有效字符出现在文件名中。也可以使用 MacID 函数来指定文件组。

Dim MyFile, MyPath, MyName

' 返回“WIN.INI” (如果该文件存在)。
MyFile = Dir("C:\WINDOWS\WIN.ini")   

' 返回带指定扩展名的文件名。如果超过一个 *.ini 文件存在,
' 函数将返回按条件第一个找到的文件名。
MyFile = Dir("C:\WINDOWS\*.ini")

' 若第二次调用 Dir 函数,但不带任何参数,则函数将返回同一目录下的下一个 *.ini 文件。
MyFile = Dir

' 返回找到的第一个隐式 *.TXT 文件。
MyFile = Dir("*.TXT", vbHidden)

' 显示 C:\ 目录下的名称。
MyPath = "c:\"   ' 指定路径。
MyName = Dir(MyPath, vbDirectory)   ' 找寻第一项。
Do While MyName <> ""   ' 开始循环。
   ' 跳过当前的目录及上层目录。
   If MyName <> "." And MyName <> ".." Then
      ' 使用位比较来确定 MyName 代表一目录。
      If (GetAttr(MyPath & MyName) And vbDirectory) = vbDirectory Then
         Debug.Print MyName   ' 如果它是一个目录,将其名称显示出来。
      End If
   End If
   MyName = Dir   ' 查找下一个目录。
Loop



帮助里面的解释,这里应该有你要的答案。

  • 0
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
VB.NET中,我们可以使用`FtpFindFirstFile`和`FtpFindNextFile`函数遍历FTP服务器上的文件。这两个函数是通过P/Invoke调用Windows API实现的。 以下是一个示例代码,演示了如何使用`FtpFindFirstFile`和`FtpFindNextFile`函数遍历FTP服务器上的文件: ```vb Imports System.Runtime.InteropServices Public Structure WIN32_FIND_DATA Public dwFileAttributes As Integer ' 其他字段... End Structure <DllImport("wininet.dll", CharSet:=CharSet.Auto, SetLastError:=True)> Private Shared Function FtpFindFirstFile(hConnect As IntPtr, lpszSearchFile As String, lpFindFileData As IntPtr, dwFlags As Integer, dwContent As Integer) As IntPtr End Function <DllImport("wininet.dll", CharSet:=CharSet.Auto, SetLastError:=True)> Private Shared Function FtpFindNextFile(hFind As IntPtr, lpFindFileData As IntPtr) As Boolean End Function <DllImport("wininet.dll", CharSet:=CharSet.Auto, SetLastError:=True)> Private Shared Function InternetOpen(lpszAgent As String, dwAccessType As Integer, lpszProxyName As String, lpszProxyBypass As String, dwFlags As Integer) As IntPtr End Function <DllImport("wininet.dll", CharSet:=CharSet.Auto, SetLastError:=True)> Private Shared Function InternetCloseHandle(hInternet As IntPtr) As Boolean End Function Public Sub ListFtpFiles() Dim hInternet As IntPtr = IntPtr.Zero hInternet = InternetOpen("AppName", 0, Nothing, Nothing, 0) If hInternet <> IntPtr.Zero Then Dim hConnect As IntPtr = IntPtr.Zero ' 连接到 FTP 服务器 hConnect = FtpOpenFile(hInternet, "ftp://example.com", "username", "password", 0, 0) If hConnect <> IntPtr.Zero Then Dim lpFindFileData As New IntPtr() ' 查找第一个文件 lpFindFileData = Marshal.AllocHGlobal(Marshal.SizeOf(GetType(WIN32_FIND_DATA))) Dim hFind As IntPtr = FtpFindFirstFile(hConnect, "*", lpFindFileData, 0, 0) If hFind <> IntPtr.Zero Then Do Dim findData As WIN32_FIND_DATA = CType(Marshal.PtrToStructure(lpFindFileData, GetType(WIN32_FIND_DATA)), WIN32_FIND_DATA) ' 处理文件信息... Console.WriteLine(findData.cFileName) Loop While FtpFindNextFile(hFind, lpFindFileData) InternetCloseHandle(hFind) End If ' 关闭 FTP 连接 InternetCloseHandle(hConnect) End If InternetCloseHandle(hInternet) End If End Sub ``` 在上述示例中,我们使用`FtpOpenFile`函数连接到FTP服务器,并使用`FtpFindFirstFile`函数查找第一个文件。然后,我们使用`FtpFindNextFile`函数循环遍历并处理每个文件的信息。 请注意,您需要根据实际情况替换示例代码中的`ftp://example.com`、`username`和`password`。另外,记得在使用完内存后释放它们,以避免内存泄漏。 希望这可以帮助到您!如果您有更多问题,请随时提问。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值