【问题标题】:How to lock a csv file with C#? V2如何使用 C# 锁定 csv 文件? V2
【发布时间】:2017-07-18 10:34:04
【问题描述】:

如何使用 C# 锁定 csv 文件? 我对此链接对文件保护的需求几乎相同: How to lock a file with C#? 有什么不同?

        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 中打开文件。

【问题讨论】:

  • 请参考此链接。它适用于所有类型的文件enter link description here
  • 指定FileShare.None,就像链接的答案所说的那样?

标签: c# csv locking


【解决方案1】:

试试这个:

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();
     }

别忘了 close() fileStream;

【讨论】:

  • 如果它在 using 语句中,则不需要关闭它。
  • VS 将这个标记为“new StreamWriter(fileStream1,true);”带有红线并显示此错误消息。错误:'System.IO.StreamWriter(System.IO.Stream, System.Text.Encoding, int)' 的最佳重载方法匹配有一些无效参数
  • VS 将这个标记为“new StreamWriter(fileStream1,true, sjisX2);”带有红线并显示此错误消息。错误:'System.IO.StreamWriter(System.IO.Stream, System.Text.Encoding, int)' 的最佳重载方法匹配有一些无效参数
  • 它应该是上面示例中的加密 StreamWriter。希望这是可能的。我不能在这里测试它。
猜你喜欢
  • 2011-07-28
  • 2014-02-09
  • 2016-06-25
  • 1970-01-01
  • 1970-01-01
  • 2014-11-09
  • 2011-11-26
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多