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 Datee.ModifyTime.AddMonths(3)
If
tp < Date.Today Then
    e.Cancel = True
   
MessageBox.Show("禁止删除三个月以前的文件!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Information)
End
If


本页地址:http://www.foxtable.com/webhelp/topics/3252.htm