文件粉碎机c语言代码,VB写文件粉碎机
'此函数返回值是指向项目(ITEM)的一个指针,有了这个数值,再用API函数SHGetPathFromIDList可以获得具体的路径,如果用户按的是“取消”按钮,则返回值为NULL。Private Declare Function SHBrowseForFolder _
Lib "shell32.dll" Alias "SHBrowseForFolderA" _
(lpBrowseInfo As BROWSEINFO) As Long
Private Declare Function SHGetPathFromIDList _
Lib "shell32.dll" _
(ByVal pidl As Long, _
pszPath As String) As Long
Private Type BROWSEINFO
hOwner As Long '当前窗口的句柄。 pidlRoot As Long '从何根路径开始展开文件夹,缺省情况下从“桌面”开始展开。 pszDisplayName As String
lpszTitle As String '目录树上方的标题,用来给用户一些提示信息。 ulFlage As Long '显示标志控制项:比如若赋值为BIF_BROWSEFORCOMPUTER,则只有当用户选择“我的电脑”时“确定”按钮才有效,这里我们需要的是 BIF_RETURNONLYFSDIRS,只有用户选择的是文件夹时“确定”按钮才有效。 lpfn As Long
lparam As Long
iImage As Long
End Type
Private Function ShowDir(MehWnd As Long, _
dirpath As String, _
Optional Title As String = "请选择文件夹:", _
Optional flage As Long = &H1, _
Optional DirID As Long) As String
Dim BI As BROWSEINFO
Dim TempID As Long
Dim TempStr As String
TempStr = String$(255, Chr$(0))
With BI
.hOwner = MehWnd '句柄 .pidlRoot = 0 '展开根目录 .lpszTitle = Title + Chr$(0) '列表框标题 .ulFlage = flage
End With
TempID = SHBrowseForFolder(BI) '调用API函数显示列表框DirID = TempID
If SHGetPathFromIDList(ByVal TempID, ByVal TempStr) Then
dirpath = Left$(TempStr, InStr(TempStr, Chr$(0)) - 1)
ShowDir = dirpath
Else
ShowDir = ""
End If
End Function
Sub Findfile(getPath As String) '遍历目录里的所有文件Dim mypath As String
Dim myname As String
Dim mydirectory() As String
Dim i, intresult As Integer
mypath = getPath
If mypath = "" Then Exit Sub '如果文件夹为空则无需遍历intresult = 2
ReDim mydirectory(intresult) '初始化动态数组mydirectory(1) = mypath
i = 1
Do Until mydirectory(i) = "" '以广度优先算法遍历目录mypath = mydirectory(i)
If Right(mypath, 1) <> "\" Then mypath = mypath & "\"
myname = Dir(mypath, vbDirectory) '找寻第一项。Do While myname <> "" '开始循环。 If myname <> "." And myname <> ".." Then '跳过当前的目录及上层目录。 If (GetAttr(mypath & myname) And vbDirectory) = vbDirectory Then '使用位比较来确定 MyName 代表一目录。 mydirectory(intresult) = mypath & myname '如果它是一个目录,将其名称存储在一个数组里。 intresult = intresult + 1
ReDim Preserve mydirectory(intresult) '重定义动态数组大小,并保存以前数据 Else
List1.AddItem mypath & myname '如果是文件则加入到列表框 End If
End If
myname = Dir '查找下一个目录。Loop
i = i + 1
Loop
End Sub
Private Sub Command1_Click() '添加文件Dim i As Integer, z As Integer
Dim path As String
cdlg.Flags = cdlOFNAllowMultiselect + cdlOFNExplorer '设置通用对话框可以多选cdlg.FileName = ""
cdlg.Filter = "All Files|*.*" '设置公共对话框的文件过滤器cdlg.ShowOpen '显示“打开”对话框If cdlg.FileName = "" Then Exit Sub '如果一个文件也没选则退出过程cdlg.FileName = cdlg.FileName & Chr(0)
z = 1
i = InStr(z, cdlg.FileName, Chr(0))
'选择一个文件则直接加入列表框中,如果选择多个文件则分离出每个文件分别加入列表框。If i = Len(cdlg.FileName) Then
List1.AddItem RTrim(cdlg.FileName)
Else
path = Mid(cdlg.FileName, z, i - 1)
z = i + 1
If Right(path, 1) <> "\" Then path = path + "\"
For i = z To Len(cdlg.FileName)
i = InStr(z, cdlg.FileName, Chr(0))
List1.AddItem path + Mid(cdlg.FileName, z, i - 1)
z = i + 1
Next
End If
Command3.Enabled = True
End Sub
Private Sub Command2_Click() '添加目录Dim mypath As String
mypath = ShowDir(Me.hWnd, App.path) '调用函数选择目录Findfile mypath '调用函数遍历目录Command3.Enabled = True
End Sub
Private Sub Command3_Click() '开始粉碎If List1.ListCount = 0 Then Exit Sub '如果列表框空则不用执行Dim i As Integer, j As Integer
Dim filenumber As Integer
Dim filesize As Long
i = MsgBox("执行粉碎后将无法恢复,继续吗?", 33, "文件粉碎")
If i = 2 Then Exit Sub
For i = 0 To List1.ListCount - 1
SetAttr List1.List(i), vbNormal '将所有文件属性设置为普通文件,因为只读文件是无法写入的Next i
For i = 0 To List1.ListCount - 1
filenumber = FreeFile '获取可用文件号 Open List1.List(i) For Binary As #filenumber '以Binary方式打开文件 filesize = LOF(filenumber)
If filesize = 0 Then GoTo continue
'设置进度条的最大和最小值 jdt.Max = filesize
jdt.Min = 0
If filesize <= 1000000 Then
Put #filenumber, , String$(filesize, Chr$(0)) '小于1M的文件按实际大小一次性填充 jdt.Value = filesize
Else
'大于1M的文件一次填充1M,剩余的按实际大小填充 For j = 1 To filesize \ 1000000
Put #filenumber, , String(1000000, Chr$(0))
jdt.Value = jdt.Value + 1000000
Next j
Put #filenumber, , String(filesize Mod 1000000, Chr$(0))
jdt.Value = filesize
End If
jdt.Value = 0
continue: Close filenumber
Kill List1.List(i) '粉碎结束一个文件后将其删除Next i
MsgBox "完成文件粉碎!"
List1.Clear
Command3.Enabled = False
End Sub
Private Sub Command4_Click() '清空列表List1.Clear
End Sub
Private Sub Command5_Click() '退出系统End
End Sub
Private Sub Form_Load()
Command3.Enabled = False
End Sub
Private Sub List1_DblClick()
List1.RemoveItem List1.ListIndex
End Sub
文件粉碎机c语言代码,VB写文件粉碎机相关推荐
- VB 写文件关联程序
bar关联notepad 代码如下: Private Declare Function RegCreateKey& Lib "advapi32.DLL" Alias &qu ...
- 【学习笔记】23、读写文件(I/O操作)— 写文件
读写文件(I/O操作)- 写文件 写入文件 同读取文件一样,也是三步走: 打开/新建文件 操作文件 关闭文件 写入使用到的访问模式则是"w",开打一个文件只用于写入,如果该文件已经 ...
- c/c++入门教程 - 2.5 文件操作、fstream(write写文件、read读文件、ios::binary二进制文件读写)
目录 2.5 文件操作 2.5.1 文本文件 2.5.1.1 写文件 2.5.1.2 读文件 2.5.2 二进制文件 2.5.2.1 二进制写文件 2.5.2.2 二进制读文件 2.5 文件操作 程序 ...
- vs水仙花数c语言代码,求水仙花数c语言代码怎么写
求水仙花数c语言代码怎么写 水仙花数(Narcissistic number)也被称为超完全数字不变数(pluperfect digital invariant, PPDI).自恋数.自幂数.阿姆斯壮 ...
- java语言怎样判断文件夹_JAVA语言之如何判断文件,判断文件夹是否存在的代码...
本文主要向大家介绍了JAVA语言之如何判断文件,判断文件夹是否存在的代码,通过具体的内容向大家展示,希望对大家学习JAVA语言有所帮助. 一.判断文件是否存在,不存在则创建File file = ne ...
- c语言程序.cpp文件,[轉]C语言程序设计基础之文件
所谓"文件"是指一组相关数据的有序集合. 这个数据集有一个名称,叫做文件名. 实际上在前面的各章中我们已经多次使用了文件,例如源程序文件.目标文件.可执行文件.库文件 (头文件)等 ...
- c语言.h文件实例,C 语言项目中.h文件和.c文件的关系
那是一个被 遗忘的年代,在编译器只认识.c(.cpp))文件,而不知道.h是何物的年代. 那时的人们写了很多的.c(.cpp)文件,渐渐地,人们发现在 很多.c(.cpp)文件中的声明语句就是相同的, ...
- c语言 测试文件存在,c语言 file如何判断文件是否存在
c语言中如何判断文件是否存在 一般情况下,我们可以使用函数stat(), access() 和fopen()来检验文件是否存在,但是由于文件权限的问题,有时可能不像结果所言,可能不是因为文件不存在,而 ...
- .sh文件是什么语言_关于Linux文件的一些基本命令和知识:
*关于Linux文件的一些基本命令和知识:* >(Linux中文件是一个字符流序列:包括: 1.普通文件(文本文件,可执行文件) 2.目录 3.磁盘.键盘.打印机.网卡等设备) *文件的创建.查 ...
- python读取txt文件写入失败-Python write 函数写文件失败
工作中涉及到了内容抓取的需求,用 Python 根据Url抓取对应的Html页面,并存储到本地文件,然后程序内继续将本地文件的路径作为参数,调用Node进行杂质过滤和内容提取.但怪的是在Python执 ...
最新文章
- 各种光学仪器成像技术(上)
- powerDesign设计随笔
- oracle查询表的字段类型有哪些,oracle中查询表的信息,包括表名,字段名,字段类型,主键(精)...
- java微信开发bae_在百度BAE2.0 JAVA环境下搭建属于自己的微信公众平台接口
- IDC干货:5个维度!全面综合分析我国城市数据中心发展情况
- ContactsContract.Contacts与ContactsContract.CommonDataKinds.Phone的区别
- 初探奥尔良(Orleans)
- 4、python简单线性回归代码案例(完整)_python 实现一个简单的线性回归案例
- SAP License:SAP ECC6安装系列二:安装前的准备工作
- pandas 保存csv 不要序号
- 查看另外一台机器的docker情况 监控性能管理docker 配置Docker Daemon
- python调用接口失败_python调用软件com接口问题,python报错
-问答-阿里云开发者社区-阿里云...
- 水晶报表客户机电脑报错“CrystalDecisions.CrystalReports.Engine.ReportDocument”
- this product is covered by one or more of the following
- 官方教你如何为centos 7.x 安装Broadcom无线网卡驱动
- 利用Python打造短链接服务
- 0315-HttpURLConnection和JASON结合使用(以天气预报为例)
- 基于Twitter数据的情感预测与案例分析
- Vue使用Eslint报“Parsing error: x-invalid-end-tag“错误的解决方案
- 魔兽世界活跃人数持续下降
热门文章
- MicroStation软件与Terrasolid插件合集的安装方法
- Unity分屏之使用TUIO实现互动投影
- android文字识别apk,照片转文字识别提取apk
- 计算机软件税负率,软件产品增值税超税负退税实务问题
- HTML5网页设计成品_学生DW静态网页设计_web课程设计网页制作 网页制作基础大二dw作业 HTML5期末考核大作业 个人网站设计
- 图像篡改被动检测技术一览:基于特征提取和卷积神经网络的篡改检测
- 矩阵求导法则,梯度求导方式
- 头歌 1.Pandas安装与对象使用
- 重构改善既有代码的设计思维导图
- 计算机技术手段在材料中的应用,计算机在材料加工中的应用.docx