题
我需要我的应用程序要求用户浏览到一个特定的文件,保存文件的位置,并随后从一个TextBox字符串写入。
不过,我只需要我的最终用户浏览到该文件的首次应用程序启动。只有一次。
下面就在于我的困境,我怎么能有我的应用程序的记住的,如果它是第一次,它推出?
解决方案
我想你想要的文件夹,而不是一个文件,但这是除了点。
可以使用UserSetting(见项目属性,设置),并用空的或无效的值对其进行部署。只有当你阅读的设置无效值你开始对话。
这是在每个用户的基础上。
您可以使用.NET注册表,但你真的想留下来从尽可能远。该库不处于系统命名空间中的事实是一个指标。
其他提示
保存在注册表中选择的文件,或在用户的文档和设置的配置文件的文件夹。
要获取到本地程序的路径,使用:
string path = Environment.GetFolderPath(Environment.LocalApplicationData);
我会使用注册表中添加了“SavedFileLocation”的条目为您的应用程序。
有关使用注册表的教程,检查此处。
然后就可以检查是否存在的关键,如果没有出现该对话框。点击 如果密钥存在,您应检查文件是否存在。如果该文件不存在,你应该将该信息传达给用户,并问他们是否想创建一个新的文件存在,或者选择新的位置。结果 否则,采取价值,并保持它的运行时间。
<强> CODE:强>
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;
}
不隶属于 StackOverflow