2017-07-18 11 views
0

CsvファイルをC#でロックする方法は? 私はこのリンクからのファイル保護の必要性はほぼ同じです: How to lock a file with C#? 何が違うのですか? 毎分です。CsvファイルをC#でロックする方法は? 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)'に最適なオーバーロードメソッドが無効な引数を持っています –

関連する問題