2012-08-02 19 views
6

私はC#StreamWritierクラスを使用しています。質問:"読み取り専用"ファイルの作成方法?

  1. 誰もファイルを削除できないように、ファイルを読み取り専用にするにはどうすればよいですか?
  2. どのようにして隠しファイルを作成できますか?

私はそうのようなファイルを作成しています:

private void button1_Click(object sender, EventArgs e) 
    { 
     SaveFileDialog save = new SaveFileDialog(); 
     save.FileName = textBox1.Text; 
     save.Filter = "Text File | *.rtf"; 


     if (save.ShowDialog() == DialogResult.OK) 
     { 
      StreamWriter writer = new StreamWriter(save.OpenFile()); 
      writer.WriteLine(textBox2.Text); 
     } 

     writer.Dispose(); 
     writer.Close(); 
    } 
+0

あなたはその投稿を見ることができます:http://stackoverflow.com/a/5398398/1252575 これは別のものです:http://stackoverflow.com/questions/7590446/set-file-permissions-in-c-急に – Nickon

+0

@peer私は私のコードを変更し、私の質問の1つを削除して、あなたの編集cuzを受け入れることはありません。 –

+0

@ニックネームユーザーのピアは私の質問を編集しました。 –

答えて

8

こんにちは、あなたがこの方法で

public static void SetFileReadAccess(string FileName, bool SetReadOnly) 
{ 
     FileInfo fInfo = new FileInfo(FileName); 

     // Set the IsReadOnly property. 
     fInfo.IsReadOnly = SetReadOnly; 

} 

を試すことができます:あなたは、次の質問は、C#でそれらを変更する方法を教えてくれます、ということを理解したら、 2

File.SetAttributes(yourFilePath, FileAttributes.Hidden); 
"yourFilePath" は文字列です

FileAttributes yourFile = File.GetAttributes(yourFilePath); 
File.SetAttributes(yourFilePath, FileAttributes.ReadOnly); 

:0

......

+0

ヤコブは、私の質問の第2部分をチェックすることができます。誰かが編集して2番目の部分を削除してください私は再編集した。ありがとう。ところで私はすべてあなたに投票しました。 –

+0

ありがとうございましたModest私は第二の答えを追加 –

+0

あなただけの最初のanwerのURコードをインデントしたので、他の人も読めるようになりました。ありがとう。私はあなたの答えを受け入れた。 –

4

あなたはFile.SetAttributesを使用して読み取り専用属性を設定することができます。

例:これが唯一の読み取り専用フラグを設定すること

File.SetAttributes(textBox1.Text, FileAttributes.ReadOnly); 

注意、それは(すべての熟練したユーザーは読み取り専用属性を削除することができることを意味する)NTFSアクセス制御リストを変更しません。とにかく新しいファイルを作成しているので、これはあなたの場合には問題ではないはずの、ファイルの他のすべての属性をリセットすることにも注意してください。既存の属性を保持する必要がある場合は、最初にFile.GetAttributesを使用し、既存のフラグを新しいフラグと組み合わせてください(リンクされたMSDNページの例を参照)。


あなたは悪質な書き込みattemtsに対するファイルを保護する必要がある場合、あなたは(資源のロットの「NTFSセキュリティ」のためのgoogle)NTFSセキュリティを理解する必要があります。

+0

どのように私はそれを使用してそれを作るでしょうか?私のコードに表示することは可能ですか? –

+0

はいありがとうHeinzi私は見る。あなたの答えを編集する前に、私はあなたに答えました。 –

+0

私の質問はピアによって編集されました。彼は質問の2番目の部分を削除しましたので、私は再度編集しました。ありがとう。 –

2

は、読み取り専用ファイルのためにこれを使用してください。

FileAttributes yourFile = File.GetAttributes(yourFilePath); 
File.SetAttributes(yourFilePath, FileAttributes.Hidden); 

そして、通常のファイル(隠しを読み取り専用、またはない)のために:隠しファイルについては

FileAttributes yourFile = File.GetAttributes(yourFilePath); 
File.SetAttributes(yourFilePath, FileAttributes.Normal); 

私はあなたが通常のファイルを設定するために要求していない知っているが、これを知ることは有益だと思います。

+0

Rodrioは私の質問の第2部をチェックして、誰かが編集して2番目の部分を削除して再編集してください。ありがとう。ところで私はすべてあなたに投票しました。 –

+0

ありがとうございましたあなたのすべての答えが働いていると思いますが、私はすべてあなたに投票しましたが、私はすでにAghilas Yakoubの答えを受け入れていますので、私を誤解しないでください。本当にありがとう。 –

+0

あなたの答えを尊重します –

関連する問題