2017-07-18 30 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)'匹配的最佳重載方法有一些無效參數 –