[DllImport(
"kernel32.dll"
, CharSet = CharSet.Auto, SetLastError =
true
)][/align][align=left]
[
return
: MarshalAs(UnmanagedType.Bool)][/align][align=left]
static
extern
bool
SetFileAttributes([MarshalAs(UnmanagedType.LPTStr)]
string
lpFileName, FileAttributes dwFileAttributes);[/align]
[align=left]
string
ExcelPath =
"folderpath.xlsx"
;[/align][align=left]
string
Title =
"文件夹加解密提醒"
;[/align][align=left]
public
void
Lock(
string
FolderPath)[/align][align=left]
{[/align][align=left]
string
folderPath = FolderPath;[/align][align=left]
FileAttributes attributes = File.GetAttributes(folderPath);[/align]
[align=left]
attributes |= FileAttributes.NotContentIndexed;[/align][align=left]
SetFileAttributes(folderPath, attributes);[/align]
[align=left]
File.SetAttributes(folderPath, File.GetAttributes(folderPath) | FileAttributes.Hidden|FileAttributes.System);[/align][align=left]
DirectorySecurity directorySecurity = Directory.GetAccessControl(folderPath);[/align][align=left]
FileSystemAccessRule fileSystemAccessRule =
new
FileSystemAccessRule(Environment.UserName, FileSystemRights.FullControl, AccessControlType.Deny);[/align][align=left]
directorySecurity.AddAccessRule(fileSystemAccessRule);[/align][align=left]
Directory.SetAccessControl(folderPath, directorySecurity);[/align]
[align=left]
}[/align][align=left]
public
void
UnLock(
string
FolderPath)[/align][align=left]
{[/align][align=left]
string
folderPath = FolderPath;[/align][align=left]
DirectorySecurity directorySecurity = Directory.GetAccessControl(folderPath);[/align][align=left]
FileSystemAccessRule fileSystemAccessRule =
new
FileSystemAccessRule(Environment.UserName, FileSystemRights.FullControl, AccessControlType.Deny);[/align][align=left]
directorySecurity.RemoveAccessRule(fileSystemAccessRule);[/align][align=left]
Directory.SetAccessControl(folderPath, directorySecurity);[/align][align=left]
File.SetAttributes(folderPath, File.GetAttributes(folderPath) & ~FileAttributes.Hidden&~FileAttributes.System);[/align][align=left]
}