锁定文件除了我以外没人改变?

时间:2012-07-29 04:54:26

标签: c# file winapi

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

我该怎么办?在C# WinApi或其他任何事情?

4 个答案:

答案 0 :(得分:2)

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

答案 1 :(得分: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

答案 2 :(得分:1)

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

使用来自网址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); 
} 

答案 3 :(得分:0)

如果您正在寻找 WINAPI替代see this answer。它实际上解决了使用FileStream.Lock可能遇到的问题。