2011-01-19 7 views
0

サー、私のプロジェクトにテキストファイルを追加して、それがユーザーに見えないようにする方法..?

私はテキストファイルにいくつかの情報を保存するアプリケーションを開発しています。実行中に、ファイル(.txtファイル)との間でデータの読み書きを行いたいと思います。私はファイルをユーザーに見せたくありません。または、表示されている場合は、システムのprogramfileフォルダになければならず、ユーザーはファイルのデータを削除できませんでした。私は何をすべきか?私は、ファイルをリソースファイルに追加しようとしましたが、ファイルを読み書きできませんでした。私は読んで/書くか、同じ(上記の)を実装するためのいくつかの他の方法を提供するのに役立ちます。事前に

おかげで....

答えて

1

ProgramFiles(インストール)フォルダを使用しないでください: 1.ユーザー のファイルが表示されます。2.ユーザーが管理者権限を持たない場合、ファイルの変更に失敗します。 Windows System folderも権利の問題です。私はシステムレジストリまたはappdataフォルダを使用するアドバイスをしたい:あなたはそれを得ることができるEnvironment.GetFolderPath(Environment.SpecialFolder.ApplicationData)。管理者権限なしでその場所に書き込むことができます。特別なサブフォルダを作成する必要があります(必要ではありませんが、便利です)。 またはレジストリ場合: はレジストリへの書き込み:

レジストリからの読み取り
string myEncrStringToSave;  
Microsoft.Win32.RegistryKey key; 
key = Microsoft.Win32.Registry.CurrentUser.CreateSubKey("Software\\Your_Cpecial_Key"); 
key.SetValue("Software\\Your_Cpecial_Key", myEncrStringToSave); 
key.Close(); 

:ここ

Microsoft.Win32.RegistryKey key; 
key = Microsoft.Win32.Registry.CurrentUser.CreateSubKey("Software\\Your_Cpecial_Key"); 
object value = key.GetValue("Software\\Your_Cpecial_Key"); 
if (value!=null) 
    string myEncryptedString = value.ToString(); 
key.Close(); 

Your_Cpecial_Keyはあなたへのアクセスを取得することができます(ハッシュテーブルのような)いくつかの識別子です。データ。

+0

先生、大変申し訳ございません。私は最近、卒業生(2010年)に合格し、プログラミングにあまり効果がありません。私は上記のコードを理解できませんでした。 – himanshu

+0

正確に分かりませんか?私はあなたのためのいくつかの詳細を追加しました。 –

+0

ありがとう..それは動作します – himanshu

1

あなたはIsolatedStorageを使用することができ、それは同様に完全に隠されたが、少なくとも簡単に見つけていないではありません。

+0

ok、テキストファイルをインストールディレクトリに保存してユーザーがそれを変更できないようにするにはどうすればよいですか? – himanshu

+0

あなたはファイルを読み込み可能にしたいが、ユーザーは編集可能ではないか暗号化してもよろしいですか?ユーザーが読むことができるようにするには、プレーンテキストファイルは、読み取り専用、隠しファイルシステムのセキュリティで設定しても、それらの属性を変更してセキュリティをオーバーライドすることができます管理者 –

+0

テキストファイルに暗号化された文字列を書きました。私はこれらの文字列をユーザが削除したくない。また、ユーザーがアプリケーションを使用しているときにファイルに文字列を書きたいと思っています。セキュリティオーバーライドに関する限り、ファイル内のデータは資格情報ではありません。アプリケーションをインタラクティブにすることは不可欠です。 – himanshu

0

ファイルをWindowsのシステムフォルダに入れ、そこから使用します。

完全パスを使用せずにEnvironment.SpecialFolder.Systemを使用してアクセスできます。

この方法では、ファイルを見つけるために熱心に作業する必要がありますが、ユーザーがプログラムを実行している同じユーザーであるため、彼が実際にファイルを変更することを防ぐことはできません。

0

これが役立つかどうかはわかりません。 あなたはこれが展開された場所にユーザーがアクセスも利用できません埋め込まれたリソースとしてテキストファイルを作成し、

Assembly assm = Assembly.GetExecutingAssembly(); 
StreamReader aread = new StreamReader(assm.GetManifestResourceStream("Namespace.TextFile1.txt")); 

を経由して同じを得ることができます

関連する問題