原因:目录中大概有3000个文件,目录中仅有几个文件需要保存,其它文件都需要被删除。
想法:1、拷贝有用的文件到别处->删除原有目录->建立原有目录->移动移出的文件到原有目录。
如果环节中有断电发生,将导致文件丢失。不安全
2、修改有用文件的属性(设为hide)->删除原有目录下属性不为hide的文件->恢复目录下属性为hide的文件。
因为第二种方法较为安全,所以想采取,但不知道操作。希望得到帮助。
。
想法:1、拷贝有用的文件到别处->删除原有目录->建立原有目录->移动移出的文件到原有目录。
如果环节中有断电发生,将导致文件丢失。不安全
2、修改有用文件的属性(设为hide)->删除原有目录下属性不为hide的文件->恢复目录下属性为hide的文件。
因为第二种方法较为安全,所以想采取,但不知道操作。希望得到帮助。
。
vbNormal 0 常规
vbReadOnly 1 只读
vbHidden 2 隐藏
vbSystem 4 系统文件
vbDirectory 16 目录或文件夹
vbArchive 32 上次备份以后,文件已经改变
vbalias 64 指定的文件名是别名。
注意 这些常数是由 VBA 指定的,在程序代码中的任何位置,可以使用这些常数来替换真正的值。说明若要判断是否设置了某个属性,在 GetAttr 函数与想要得知的属性值之间使用 And 运算符与逐位比较。如果所得的结果不为零,则表示设置了这个属性值。例如,在下面的 And 表达式中,如果档案 (Archive) 属性没有设置,则返回值为零:Result = GetAttr(FName) And vbArchive如果文件的档案属性已设置,则返回非零的数值。
=============================================
这个东西可能对你有帮助:)
'定义一个路径常数
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