3

我需要锁定我的密码字典文件,我想锁定文件不被删除和更改。

我该怎么做?在C# WinApi里面还是别的什么?

4

4 回答 4

2

当您的程序运行时,您可以使用FileStream.LockFileStream.UnLock来锁定文件。

于 2012-07-29T05:36:07.950 回答
2

您可以使用FileShare.None打开文件并保留它,只要您希望它被锁定

var stream = new FileStream("file.ext",FileMode.Open,
          FileAccess.ReadWrite,FileShare.None);
//file is locked 


stream.Close(); //lock is release.

http://msdn.microsoft.com/en-us/library/5h0z48dh.aspx

于 2012-07-29T05:38:07.163 回答
1

你为什么不在你的文件上设置安全性(只允许你想要的用户)并在你的代码中使用模拟。模拟将允许您的应用程序使用用户凭据来访问您的文件

使用来自 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); 
} 
于 2012-07-29T05:26:34.027 回答
0

如果您正在寻找WINAPI 替代方案请参阅此答案。它实际上解决了使用FileStream.Lock.

于 2012-07-30T22:01:24.363 回答