2017-07-18 257 views
0

如何用C#锁定csv文件? 从这个链接我几乎有相同的文件保护需求: How to lock a file with C#? 有什么不同? 每分钟都可以做到。如何使用C#锁定csv文件? V2

 Encoding sjisX2=Encoding.GetEncoding("Shift_JIS"); 
     StreamWriter arquivo2=new StreamWriter(saveNameTemporaryFull,true,sjisX2); 
     arquivo2.Write(tb_csvFull.Text); 
     arquivo2.Close(); 
     //fileProtec.Attributes=FileAttributes.Hidden; 

我需要锁定文件,以便在应用程序正在收集数据并节省每分钟的时间内不会打开文件。 只读和隐藏不起作用,因为用户可以在Excel中打开文件。

+0

请参阅此链接。它适用于所有类型的文件 [在此输入链接描述](https://stackoverflow.com/questions/5888123/how-to-put-a-lock-on-a-file-in-a-multi-user -environment) –

+3

指定'FileShare.None',就像链接的答案所说的那样? –

回答

0

试试这个:

using(FileStream fileStream = new FileStream(
    saveNameTemporaryFull, FileMode.OpenOrCreate, 
    FileAccess.ReadWrite, FileShare.None)) 
    { 
     StreamWriter arquivo2 = new StreamWriter(fileStream, true,sjisX2); 
     arquivo2.Write(tb_csvFull.Text); 
     arquivo2.Close(); 
    } 

不要忘记关闭()FILESTREAM;

+1

如果它在using语句中,那么关闭它是不必要的。 – mason

+0

VS标记此 “新的StreamWriter(fileStream1,true);”带有红线的 并显示此错误消息。 错误: 为 'System.IO.StreamWriter(System.IO.Stream,System.Text.Encoding,INT)' 的最佳重载方法匹配具有一些无效参数 –

+0

的VS标志着这个 “新的StreamWriter(fileStream1,真,sjisX2);“带有红线的 并显示此错误消息。 错误: 与'System.IO.StreamWriter(System.IO.Stream,System.Text.Encoding,int)'匹配的最佳重载方法有一些无效参数 –