Risparmio il percorso di un .file txt
-
16-09-2019 - |
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?
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;
}