❶ vb.net中,不使用FSO方法,怎么快速的得到文件夹的大小
窗体上添加一个按钮,代码如下:
Public Class Form1
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
Button1.Text = "稍等!"
Button1.Enabled = False
Dim MyFolder As String = "C:\Windows"
Dim MyDir As New System.IO.DirectoryInfo(MyFolder)
Dim MyInfo As String = MyFolder + "文件夹的大小是:" + CalculateDirectorySize(MyDir, True).ToString() + "字节。"
MessageBox.Show(MyInfo, "信息提示", _
MessageBoxButtons.OK, MessageBoxIcon.Information)
Button1.Text = "开始"
Button1.Enabled = True
End Sub
Public Shared Function CalculateDirectorySize(ByVal MyDirectory As System.IO.DirectoryInfo, ByVal IsSubDirectories As Boolean) As Long
Dim MySize As Long = 0
'检查包含的所有文件
Dim MyFiles() As System.IO.FileInfo = MyDirectory.GetFiles()
For Each MyFile As System.IO.FileInfo In MyFiles
MySize += MyFile.Length
Next
'检查包含的所有子文件夹
If (IsSubDirectories) Then
Dim MyDirs() As System.IO.DirectoryInfo = MyDirectory.GetDirectories()
For Each MyDir As System.IO.DirectoryInfo In MyDirs
MySize += CalculateDirectorySize(MyDir, True)
Next
End If
Return MySize
End Function
End Class
❷ 有没有api函数能查看某文件夹占空间大小 vb函数的也行
用FSO的GETFOLDER函数啊下面是FSO操作文件夹的各种实例代码
’ FSO 文件操作相关
’ FSO 参数详解:
’ Fso.IsRootFolder=True|False ’是否为根目录
’ Fso.GetFolder ’读取文件夹 用法:Set fldr = fso.GetFolder("c:\\Program Files")
’ Fso.FolderExists=True|False ’查找此文件夹是否存在
’ Fso.CreateFolder ’创建文件夹 用法:fso.CreateFolder("c:\\cnbruce")
’ Fso.GetBaseName ’返回文件夹的名字 用法:fso.GetBaseName("c:\\cnbruce")
’ Fso.DeleteFolder ’删除指定的文件夹 用法:fso.DeleteFolder("c:\\cnbruce")
’ Fso.MoveFolder ’移动指定的文件夹 用法:fso.MoveFolder("c:\\cnbruce","C:\\Program Files") 将c:\\cnbruce移动到C:\\Program Files下
’ Fso.CopyFolder ’复制指定的文件夹 用法:fso.CopyFolder("c:\\Program Files\\cnbruce","c:\\") 将c:\\Program Files\\cnbruce复制到C:\\下
’
’ Fso.Drive ’返回驱动器的名字 返回 “D:”
’ Fso.GetDriveName ’提取驱动器名 返回“d:”
’ Fso.GetDrive ’提取驱动器名 返回 “D:” 常用写法:fso.GetDrive(fso.GetDriveName(drvPath))
’ 磁盘驱动器信息
’ Drv.DriveLetter ’返回盘符
’ Drv.VolumeName ’取得驱动器的卷标
’ Drv.TotalSize ’取得空间总大小 返回字节数,用FormatNumber(Drive.TotalSize/1024,0)格式化,返回多少G
’ Drv.FreeSpace ’剩余空间大小 返回同上
’ Drv.DriveType ’文件类型 0“设备无法识别” 1“软盘驱动器” 2“硬盘驱动器” 3“网络硬盘驱动器” 4“光盘驱动器” 5“RAM虚拟磁盘”
’ Drv.FileSystem ’磁盘格式
’ Drv.SerialNumber ’磁盘系列号
’ Drv.IsReady ’是否可用
’ Drv.Path ’磁盘路径
’ FSO文件操作
’ Txt.OpenTextFile ’打开指定的文件 用法:fso.OpenTextFile(whichfile,1) 参数1:表示“ForReading:只读,禁写。” 参数2:表示“ForWriting:可读,可写。” 参数8:表示“ForAppending:打开文件并从文件末尾开始写”
’ Txt.ReadLine ’读取一整行
’ Txt.Read(7) ’读取指定数量字符
’ Txt.ReadAll ’读取文本所有内容
’ Txt.CreateTextFile ’创建文件 用法:Set MyFile = Txt.CreateTextFile(whichfile,True) True即表示能覆盖已有文件
’ Txt.WriteLine ’向已有文件写入内容 用法:Txt.WriteLine("欢迎您来到本站")
’ Txt.Name ’返回文件名称
’ Txt.ShortPath ’返回文件短路径名
’ Txt.Path ’返回文件物理地址
’ Txt.Attributes ’返回文件属性
’ 返回值附录:
’ Normal 0 普通文件。 没有设置任何属性
’ ReadOnly 1 只读文件。 可读写
’ Hidden 2 隐藏文件。 可读写
’ System 4 系统文件。 可读写
’ Directory 16 文件夹或目录。 只读
’ Archive 32 上次备份后已更改的文件。 可读写
’ Alias 1024 链接或快捷方式。 只读
’ Compressed 2048 压缩文件。 只读
’
’ Txt.Move ’移动指定的文件 用法:Set Txt = fso.GetFile(whichfile) Txt.Move "C:\\"
’ Txt.Copy ’复制指定的文件 用法:Set Txt = fso.GetFile(whichfile) Txt.Copy "D:\\"
’ Txt.delete ’删除指定的文件 用法:Set Txt = fso.GetFile("d:\\cnbruce.txt") Txt.delete
’
’
’ Txt.Size ’返回文件大小
’ Txt.Type ’返回文件类型
’ Txt.DateCreated ’返回文件创建时间
’ Txt.DateLastAccessed ’返回文件最近访问时间
’ Txt.DateLastModified ’返回文件最后修改时间
’
’
’ 常用函数记录
’ instr ’用法:alert(instr("Abcde","A"))
’ mid ’用法:alert(mid("abjdllodfjd",2,8)) 说明:显示从第二位到第8位的这符
’
❸ vb6.0查看文件大小
如果只是查看大小、修改时间的话,可以直接使用VB内建函数:
Private Sub Form_Load()
dim sOut as string
sOut ="文件大小: " & FileLen("d:\1.exe") & "字节"
MsgBox sOut
End Sub
❹ vb中如何查看整个文件夹地大小
回答:对象FileSystemObject中地GetFolder地Files(文件个数),Size(文件夹大小)
回答:DimfsoAsNewFileSystemObject’要引microsoftscriptingruntimeDimi,jAslongi=fso.GetFolder("D:\Mytest").Size‘文件大小j=fso.GetFolder("D:\Mytest").Files.Count’文件数
回答:给亻尔个简单地纯VB代码这个没有包含子目录地,要有地话能够用递归
VBcode
(freeware)http://www.CodeHighlighter.com/PrivateSubForm_Load()MsgBox"文件总数:"&getDirFileCount("C:\")MsgBox"文件大小和:"&CLng(getDirFileLenTotal("C:\")/1024)&"KB"EndSubFunctiongetDirFileCount(DirNameAsString)AsLongIf(Right(DirName,1)<>"\")ThenDirName=DirName&"\"i=0a=Dir(DirName,vbNormal)While(a<>"")i=i 1a=Dir()WendgetDirFileCount=(DirNameAsString)AsCurrencyIf(Right(DirName,1)<>"\")ThenDirName=DirName&"\"i=0a=Dir(DirName,vbNormal)While(a<>"")i=i FileLen(DirName&a)a=Dir()WendgetDirFileLenTotal=iEndFunction回答:引用_Click().FileSystemObjectSetw=f.GetFolder("e:\music\")Debug.Printw.SizeEndSub回答:回答:FileSystemObject引用文件系统对象,并用它来获取对象属性。回答:批处理吧?。。。这个应当有API调用,但是发觉计算时也是在一个一个文件大小加起来地!1.DIR枚举这个文件夹地一切目录2.用DIR遍历每个目录中地文件和子目录,比把大小计算加起来,得到每个目录地大小。。。!最后依据得到地数据,计算整个文件夹地大小!叫李嘉诚ljc007来吧!!!!!!!!!!!!!1!!!!!!
❺ vb如何利用GetFileSize来获得文件大小
vb来获得文件大小,有以下几种方式,其中GetFileSize也是其中一种:
1、利用GetFileSize来获得,需要先定义GetFileSize的api函数:
Private Declare Function GetFileSize Lib "kernel32" Alias "GetCompressedFileSizeA" (ByVal lpFileName As String, lpFileSizeHigh As Long) As Long
Private Sub Command1_Click()
Dim a
a = GetFileSize("c:\1.zip", ByVal 0&) '文件c:\1.zip 根据情况修改
MsgBox a
End Sub
2、VB自带的FileLen(filename),推荐此方式
Private Sub Command1_Click()
a = FileLen("c:\1.zip")
MsgBox a
End Sub
3、open打开你文件的方法:
Private Sub Command1_Click()
Open "c:\1.zip" For Input As #1
a = LOF(1)
Close #1
MsgBox a
End Sub
4、还有FSO方法,必须引用FSO组件同时电脑必须支持FSO组件。
建议还是选择第2种方法,简单高效。
❻ 在VB中监视一个文件夹
楼上所说的也就是所谓的目录监视器吧?用API可以完成此任务,不用什么TIMER就行。
用API(FindFirstChangeNotification)然后建立一个等待事件内核对象,当有事件发生时等待成功,这时你可以进行你想要的操作。
在VB中的API的用法需要你自己探索,我是VC用的好一点,VB不怎么会用。
❼ vb中如何查看整个文件夹地大小
Public Function GetFolderSize(Folder As String) As Long
'取得文件夹的大小,包含子目录
On Error GoTo er
Dim Tmp As String
Dim TotalSize As Long
Dim FolderBuff() As String
Dim FolderMax As Long
Dim BuffMax As Long
cur_Folder = IIf(Right(Folder, 1) = "\", Folder, Folder & "\")
Tmp = Dir(cur_Folder & "*.*", vbDirectory)
Do Until Tmp = ""
If Tmp <> "." And Tmp <> ".." Then
If VBA.GetAttr(cur_Folder & Tmp) = vbDirectory Then '目录
FolderMax = FolderMax + 1
If FolderMax >= BuffMax Then
BuffMax = BuffMax + 1000
ReDim Preserve FolderBuff(BuffMax)
End If
FolderBuff(FolderMax) = cur_Folder & Tmp
Else
TotalSize = TotalSize + FileLen(cur_Folder & Tmp)
End If
End If
Tmp = Dir()
Loop
For i = 1 To FolderMax
TotalSize = TotalSize + GetFolderSize(FolderBuff(i)) '递归目录
Next i
er:
GetFolderSize = TotalSize
Erase FolderBuff
End Function
Private Sub Command1_Click()
'调试部分,供参考
Dim Folder As String
Folder = VBA.Environ("windir")
foldersize = GetFolderSize(Folder)
If foldersize > 1000000000 Then
Tmp = Format(foldersize / 1000000000, "0.00") & " G"
ElseIf foldersize > 1000000 Then
Tmp = Format(foldersize / 1000000, "0.0") & " M"
ElseIf foldersize > 1000 Then
Tmp = Format(foldersize / 1000, "0.0") & " k"
Else
Tmp = Format(foldersize)
End If
MsgBox "文件夹:" & Folder & vbCrLf & "大小:" & Tmp, vbInformation
End Sub
❽ vb 判断文件大小
这个是文件长度的,至于网络的主机,在想想
FileLen函数
返回
返回一个
Long,代表一个文件的长度,单位是字节。
语法
FileLen(pathname)
必要的
pathname
参数是用来指定一个文件名的字符串表达式。pathname
可以包含目录或文件夹、以及驱动器。
说明
当调用
FileLen
函数时,如果所指定的文件已经打开,则返回的值是这个文件在打开前的大小。
注意
若要取得一个打开文件的长度大小,使用
LOF
函数。