2016-06-16 10 views
-2

削除可能で読み取り専用ではないファイルを作成しようとしました。 (そのexeファイルは、ので、多分私はあまりにも実行する必要があります。)読み取り専用undeletableファイルを作成

私はこれでそれを達成しようとした:

SetFileAttributes(My_File_Path,FILE_ATTRIBUTE_READONLY); 

それだけで(それはそれに書き込み、それを読んではなく、することができます)書き込みに対する保護、削除に対しては何もしませんが、MSDNによれば削除からも保護されるはずですが、

読み取り専用のファイルです。アプリケーションはファイルを読むことができますが、ファイルに書き込んだり削除したりすることはできません。この属性はディレクトリでは受け入れられません。詳細については、「Windows Server 2003、Windows XP、またはWindows Vistaのフォルダの読み取り専用またはシステム属性を表示または変更することはできません。

ファイルが削除されないようにするにはどうすればよいですか。

  • ファイルシステムはNTFSです。これは、保護のためだ
  • 。ファイルは、子供たちの使用するためのものである、と私は、ファイルを削除するのを防ぎたい。(または、できるだけハード削除します。)
  • 私はプログラム的な解決策を探しています
+0

なぜこれをやりたいですか?あなたはマルウェアを書いていますか?ファイルへの書き込みや削除が行われる限り、プログラムは属性を自明に削除することができます。読み取り専用ファイルが削除されている場合は、まず読み取り専用ファイルを削除するプログラムによって読み取り専用属性がクリアされることが前提となります。 –

+0

USBドライブにはどのファイルシステムがありますか? – GroovyDotCom

+2

読み取り専用保護はセキュリティ機能ではありません。 **偶発的な**上書きを防ぎますが、故意の攻撃と戦うための何もしません。あなたは別の解決策を見つけなければならないでしょう。 – IInspectable

答えて

0

ファイルを削除することは実際にはファイルの変更ではなく、ディレクトリの変更です。そして、あなたが属性を使用することはできませんが、あなたはそれのために本格的なNTFSアクセスコントロールリスト(ACL)が必要です。特に、あなたが必要なもの

  1. あなたは、必要に応じてに別のACEの前に付けることEveryone
  2. にディレクトリ全体

を変更する権利を

  • を拒否することをアクセス制御エントリ(ACE)であります特性を持つACL

    1. ディレクトリ全体にACLに

    ACE年代を変更する権利

  • yourselfするためには、順番に処理するので、これは自分自身をロックアウトできないようにしています。

    関連する問題