Salvando o filepath de um arquivo .txt
-
16-09-2019 - |
Pergunta
Eu preciso da minha aplicação para perguntar ao usuário navegar para um arquivo particular, a ressalva de que arquivos local e, posteriormente, escrever uma seqüência de caracteres de uma caixa de texto a ele.
No entanto, eu só preciso do meu usuário final para navegar para o arquivo o primeira vez o aplicativo é iniciado. Apenas uma vez.
Aqui reside o meu dilema, como posso ter a minha candidatura RECORDE se fosse a primeira vez que foi lançado?
Solução
Eu acho que você quer uma pasta, não um arquivo, mas isso é além do ponto.
Você pode usar um UserSetting (propriedades consulte Project, Configurações) e implantá-lo com um valor vazio ou inválido. Só quando você lê o valor inválido de configurações que você iniciar o diálogo.
Este é em uma base por usuário.
Você pode usar o Registro no .NET, mas você realmente quer ficar longe de que, tanto quanto possível. O fato de que a biblioteca não está em um namespace System é um indicador.
Outras dicas
Salve o arquivo escolhido no Registro ou em um arquivo de configuração em documentos do usuário e pasta Configurações.
Para chegar ao caminho do seu programa local, use:
string path = Environment.GetFolderPath(Environment.LocalApplicationData);
Gostaria de usar o Registro para adicionar uma entrada para "SavedFileLocation" para sua aplicação.
Para um tutorial sobre como usar o Registro, verifique aqui .
Em seguida, você pode verificar se a chave existir, se não apresentar o diálogo.
Se a chave existir, você deve verificar se há existência do arquivo. Se o arquivo não existir, você provavelmente deve apresentar esta informação para o usuário, e perguntar-lhes se eles querem criar um novo arquivo lá, ou escolher um novo local.
Caso contrário, dar esse valor e mantê-lo por tempo de execução.
CÓDIGO:
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;
}