質問

アプリケーションでは、ユーザーに特定のファイルを参照し、そのファイルの場所を保存し、その後 TextBox から文字列を書き込むように要求する必要があります。

ただし、エンドユーザーがファイルを参照するだけで済みます。 初めて アプリケーションが起動します。1回だけ。

ここに私のジレンマがあります。どうすれば申請書を入手できるでしょうか 覚えて 初めて起動した場合は?

役に立ちましたか?

解決

私は、フォルダではなくファイルをしたいと思いますが、それはポイント以外にもある。

あなたは(設定、プロジェクトのプロパティを参照してください)UserSettingを使用して、空または無効な値でそれを展開することができます。あなたが設定から無効な値を読み込む場合にのみ、あなたはダイアログを起動します。

これは、ユーザーごとにあります。

あなたは.NETのレジストリを使用することができますが、あなたは本当に離れてできるだけ多くから滞在したいです。ライブラリは、System名前空間に存在しないという事実は、指標である。

他のヒント

レジストリ内、またはユーザーのDocuments and Settingsフォルダ内の構成ファイルで選択したファイルを保存します。

あなたのローカルプログラムのパスを取得するには、使用します:

string path = Environment.GetFolderPath(Environment.LocalApplicationData);

レジストリを使用して、アプリケーションの「SavedFileLocation」のエントリを追加します。

レジストリの使用に関するチュートリアルについては、次を確認してください。 ここ.

次に、キーが存在するかどうかを確認し、存在しない場合はダイアログを表示します。
キーが存在する場合は、ファイルの存在を確認する必要があります。ファイルが存在しない場合は、この情報をユーザーに提示し、そこに新しいファイルを作成するか、新しい場所を選択するかを尋ねる必要があります。
それ以外の場合は、その値を取得し、実行時のために保持します。

コード:

AppInitialization()
{
    RegistryKey appKey = Registry.CurrentUser.OpenSubKey(
        @"Software\YourName\YourApp"
        ?? Registry.CurrentUser.CreateSubKey( @"Software\YourName\YourApp" );


    this.fileLocation = appKey.GetValue( "SavedFileLocation" )
        ?? GetLocationFromDialog()
        ?? "DefaultFileInCurrentDirectory.txt";
}

private static string GetLocationFromDialog()
{
    string value = null;

    RegistryKey appKey = Registry.CurrentUser.OpenSubKey(
        @"Software\YourName\YourApp"
        ?? Registry.CurrentUser.CreateSubKey( @"Software\YourName\YourApp" );

    using( OpenFileDialog ofd = new OpenFileDialog() )
    {
        if( ofd.ShowDialog() == DialogResult.OK )
        {
            value = ofd.File;
            appKey.SetValue( "SavedFileLocation", value );
        }
    }

    return value;
}
ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top