2016-07-15 16 views
0

私はWindowsフレームワーク上でc#でビデオコンバーターを作っています。 私はロードされたファイルを保存したいのですが、もしユーザーがアプリケーションを終了するならば、&を追加します。そのファイルを保存して、アプリケーションを再実行するときにロードします。 これを行う方法。 ??これを行う方法について私に考えを与えてください。役立つかもしれない設定APIを使用してプログラム状態の保存と再読み込み

+1

[プログラムの再起動間に状態を保存する]の可能な複製(http://stackoverflow.com/questions/7522228/saving-state-between-program-restarts) – Sinatr

答えて

-1

あなたは以前にロードされ、その後、終了時にディスクにシリアライズし、起動時にそれをデシリアライズファイルのリストが含まれている設定クラスを作成することができます。

+0

relaventリンクを少しデモしてもらえますか? –

+0

しないでください。フレームワークはあなたのためにすべてを行います。 –

+0

フレームワークの問題は、アプリケーションを更新すると設定が失われることがあることがあります。しかし確かに最初に組み込みのソリューションを試すことができます –

0

ユーザー設定を使用する必要があります。 Visual Studioでプロジェクトのプロパティを開き、[設定]タブをクリックします。新しいユーザーをタイプSystem.Collections.Specialized.StringCollectionに設定して設定名を入力し、コンボボックスからタイプSystem.Collections.Specialized.StringCollectionを選択し、それをユーザースコープ設定として定義して追加することができます。

ユーザー設定をしてアプリケーション設定を作成するのを忘れた場合、それは読み取り専用であり、変更する可能性はありません。ユーザー設定のみ変更できます。

通常の文字列リストのように見えます。あなたはこのようにそれをように新しい値を追加し、保存することができます:もちろん

あなたはまたのようなエントリをループすることができます

foreach (string s in Properties.Settings.Default.[Setting name you chose]) 
    .... 

利点は、あなたがする必要がないことです設定が保存されている場所とその方法について気にしてください。 .NETはそれをすべてあなたに提供します。


背景:作成の設定がapp.configファイルに追加します。 [exename].exe.configとしてコンパイルすると、このファイルは出力ディレクトリにコピーされます。アプリケーションが起動すると、フレームワークはそこからアプリケーション設定を読み込みます。ユーザーの設定は、そこから読み取られるか、ユーザーのアプリケーションデータディレクトリのどこかにあるコピーから読み取られます(変更して保存した場合)。

Do not、私は繰り返します:あなたのコードからその.exe.configファイルを直接変更しようとしますが、上記のように自動的に生成されるプロパティを常に使用してください。

+0

私は一般的に、文字列のコレクションは助けよりも面倒であることがわかります。私はIEnumerable を実装していません。これは、より有用なLinq拡張機能と直接互換性がなく、設定ファイルにかなりの膨らみを引き起こします。私は分割するのが難しい複雑な文字列を格納しているときだけ推奨します。それ以外の場合は文字列を使用してください – MikeT

+0

はい、OPの目的には完璧です。彼はファイルのリストを保存する必要があります(私は推測します:ファイル名?)。おそらく彼はおそらく内部的にファイルのリストを持っているので、これらのファイルを再ロードするのは簡単なループです。私は、LINQを使うことができるということは、この場合にすべてのファイル名を含む文字列を分割する苦労よりも重要だと考えています... LINQは素晴らしいツールかもしれませんが、5年前にそれをなくしてプログラムすることができました。あなたはまだループを書くことができます、あなたは知っていますか?しかし、それは別の議論です:-)膨らんだ設定ファイルについては、ファイルが1Kか2Kか10Kかどうかを誰が気にしますか? –

関連する問題