Domanda

Ho bisogno che la mia domanda per chiedere all'utente di navigare su un particolare file, salvare la posizione dei file e successivamente scrivere una stringa da una TextBox.

Tuttavia, ho solo bisogno del mio utente a individuare il file primo tempo l'applicazione viene avviata.Solo una volta.

Qui giace il mio dilemma, come posso avere la mia applicazione ricordate se era la prima volta ha lanciato?

È stato utile?

Soluzione

Penso che si desideri una cartella, un file, ma che è oltre il punto.

È possibile utilizzare un UserSetting (Vedere proprietà del Progetto, Impostazioni) e distribuirlo con un vuoto o non valido valore.Solo quando si legge il valore non valido da impostazioni non si avvia la finestra di Dialogo.

Questo è su una base per utente.

È possibile utilizzare il Registro di sistema in .NET ma si vuole veramente stare lontano da che, per quanto possibile.Il fatto che la biblioteca non è in uno spazio dei nomi System è un indicatore.

Altri suggerimenti

Salvare il file scelto nel registro di sistema, o in un file di configurazione dell'utente nella cartella Documents and Settings.

Per ottenere il vostro locale del programma percorso, utilizzare:

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

Vorrei utilizzare il Registro di sistema per aggiungere una voce per "SavedFileLocation" per la vostra applicazione.

Per un tutorial su come utilizzare il registro di sistema, controllare qui.

Quindi è possibile controllare se la chiave esiste, se non è presente la finestra di dialogo.
Se la chiave esiste, si deve controllare l'esistenza del file.Se il file non esiste, probabilmente si dovrebbe presentare le informazioni all'utente, e chiedere loro se vogliono creare un nuovo file, o scegliere una nuova posizione.
In caso contrario, prendere il valore e tenerlo per la fase di esecuzione.

CODICE:

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;
}
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top