我需要锁定我的密码字典文件,我想锁定文件不被删除和更改。
我该怎么做?在C# WinApi
里面还是别的什么?
当您的程序运行时,您可以使用FileStream.Lock
和FileStream.UnLock
来锁定文件。
您可以使用FileShare.None打开文件并保留它,只要您希望它被锁定
var stream = new FileStream("file.ext",FileMode.Open,
FileAccess.ReadWrite,FileShare.None);
//file is locked
stream.Close(); //lock is release.
你为什么不在你的文件上设置安全性(只允许你想要的用户)并在你的代码中使用模拟。模拟将允许您的应用程序使用用户凭据来访问您的文件
使用来自 url http://www.codeproject.com/Articles/10090/A-small-C-Class-for-impersonating-a-User的 Impersonator 类
using (new Impersonator("Username", "Domainname", "Password"))
{
string pwdfile= File.ReadAllText("c:\dictionaryfile.pwd");
Console.WriteLine(pwdfile);
}
如果您正在寻找WINAPI 替代方案,请参阅此答案。它实际上解决了使用FileStream.Lock
.