BeforeDelete
在删除某个文件或目录之前执行,通过此事件可以禁止用户删除特定的文件或目录。
e参数属性
IsFolder | 逻辑型,如果被删除的是目录,则此属性返回True。 |
FileName | 字符型,要删除的文件名或目录名,含完整路径。 |
ModifyTime | 日期型,返回此文件或目录最近一次修改的日期。 |
Cancel | 逻辑型,如果设置为True,将取消此次删除操作。 |
CancelAll | 逻辑型,如果设置为True,将取消本次及后续删除操作。 |
FTPName | 字符型,返回FTP的FTPName属性 |
示例一
假定根目录下有个名为“归档”的子目录,要禁止删除此目录下的任何文件,只需将BeforeDelete事件代码设置为:
If
e.IsFolder
AndAlso e.FileName
= "/归档" Then
'首先禁止删除归档目录本身
e.Cancel
= True
ElseIf Left(e.FileName,4)
= "/归档/" Then
'禁止删除归档目录下的文件或子目录
e.Cancel
= True
End
If
If e.Cancel
Then
MessageBox.Show("禁止删除归档目录下的内容",
"提示",
MessageBoxButtons.OK,MessageBoxIcon.Information)
End
If
示例二
如果用户在归档目录下选择了100个文件进行删除,那么上述代码会弹出100次提示,用户可能会感到愤怒崩溃.
要解决这个问题很简单,只需将CancelAll设置为True:
If
e.IsFolder
AndAlso e.FileName
= "/归档" Then
'首先禁止删除归档目录
e.CancelAll
= True
ElseIf Left(e.FileName,4)
= "/归档/" Then
'禁止删除归档目录下的文件或子目录
e.CancelAll
= True
End
If
If e.CancelAll
Then
MessageBox.Show("禁止删除归档目录下的内容",
"提示",
MessageBoxButtons.OK,MessageBoxIcon.Information)
End
If
示例三
如果要禁止删除三个月之前的文件,可以将BeforeDelete代码设置为:
Dim
tp As
Date = e.ModifyTime.AddMonths(3)
If
tp < Date.Today
Then
e.Cancel
= True
MessageBox.Show("禁止删除三个月以前的文件!",
"提示",
MessageBoxButtons.OK,
MessageBoxIcon.Information)
End
If