我需要我的应用程序要求用户浏览到一个特定的文件,保存文件的位置,并随后从一个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;
}
许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top