如何删除指定属性的文件,分数只给提供了代码与最简洁代码的人(100分)

809982 2005-05-26 09:11:02
原因:目录中大概有3000个文件,目录中仅有几个文件需要保存,其它文件都需要被删除。
想法:1、拷贝有用的文件到别处->删除原有目录->建立原有目录->移动移出的文件到原有目录。
   如果环节中有断电发生,将导致文件丢失。不安全
2、修改有用文件的属性(设为hide)->删除原有目录下属性不为hide的文件->恢复目录下属性为hide的文件。
   因为第二种方法较为安全,所以想采取,但不知道操作。希望得到帮助。

...全文
66 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
脆皮大雪糕 2005-05-26
  • 打赏
  • 举报
回复
Option Explicit
'定义一个路径常数
Const strPathName = "d:\test\"
Private Sub Command1_Click()
Dim strFileName As String

strFileName = Dir(strPathName & "*.*", vbHidden)
Do While strFileName <> ""
DoEvents
If GetAttr(strPathName & strFileName) And vbHidden Then
Debug.Print strFileName
'kill不能删除隐藏文件,所以要恢复文件的属性
SetAttr strPathName & strFileName, vbNormal
Kill strPathName & strFileName
End If
strFileName = Dir
Loop
End Sub
dong127 2005-05-26
  • 打赏
  • 举报
回复
返回一个 Integer,此为一个文件、目录、或文件夹的属性。

语法

GetAttr(pathname)

必要的 pathname 参数是用来指定一个文件名的字符串表达式。pathname 可以包含目录或文件夹、以及驱动器。

返回值

由 GetAttr 返回的值,是下面这些属性值的总和:

常数 值 描述
vbNormal 0 常规
vbReadOnly 1 只读
vbHidden 2 隐藏
vbSystem 4 系统文件
vbDirectory 16 目录或文件夹
vbArchive 32 上次备份以后,文件已经改变
vbalias 64 指定的文件名是别名。


注意 这些常数是由 VBA 指定的,在程序代码中的任何位置,可以使用这些常数来替换真正的值。

说明

若要判断是否设置了某个属性,在 GetAttr 函数与想要得知的属性值之间使用 And 运算符与逐位比较。如果所得的结果不为零,则表示设置了这个属性值。例如,在下面的 And 表达式中,如果档案 (Archive) 属性没有设置,则返回值为零:

Result = GetAttr(FName) And vbArchive

如果文件的档案属性已设置,则返回非零的数值。
=============================================
这个东西可能对你有帮助:)
dong127 2005-05-26
  • 打赏
  • 举报
回复
使用GetAttr()这个函数可以取得文件属性,之后判断一下是否带有隐藏属性,有则删之

之外你还需要能遍历目录下所有文件及子文件夹的功能~这里能搜索到的~

7,763

社区成员

发帖
与我相关
我的任务
社区描述
VB 基础类
社区管理员
  • VB基础类社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧