Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/293.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# Windows窗体应用程序的通用配置文件_C#_Winforms_Visual Studio - Fatal编程技术网

C# Windows窗体应用程序的通用配置文件

C# Windows窗体应用程序的通用配置文件,c#,winforms,visual-studio,C#,Winforms,Visual Studio,我是个新手。我有几个配置文件,它们在应用程序中用于多种用途。安装Windows应用程序时,我希望将这些文件存储在公用appdata文件夹中,可以使用以下路径访问该文件夹: Environment.GetFolderPath(Environment.SpecialFolder.CommonApplicationData) 因为它需要最少的用户关注,所以最好的实现方法是什么 注意:当前文件存储在应用程序的安装目录中,因此管理员权限较低的用户会出现问题,因此会更改策略。这是未经测试的,但应该可以工作

我是个新手。我有几个配置文件,它们在应用程序中用于多种用途。安装Windows应用程序时,我希望将这些文件存储在公用
appdata
文件夹中,可以使用以下路径访问该文件夹:

Environment.GetFolderPath(Environment.SpecialFolder.CommonApplicationData)
因为它需要最少的用户关注,所以最好的实现方法是什么


注意:当前文件存储在应用程序的安装目录中,因此管理员权限较低的用户会出现问题,因此会更改策略。

这是未经测试的,但应该可以工作

运行此操作时,首先要验证
sourceFolder
targetFolder
中的路径是否指向正确的位置

var sourceFolder = System.Windows.Forms.Application.StartupPath;
var targetFolder = Environment.GetFolderPath(Environment.SpecialFolder.CommonApplicationData);
var di = new DirectoryInfo(sourceFolder);
foreach (var file in di.EnumerateFiles("*.ini"))
    File.Move(file.FullName, Path.Combine(targetFolder, file.Name));
然后您可以枚举与特定模式匹配的文件(这里我假设您的设置文件以
.ini
结尾,但您可以根据需要更改模式),并将每个文件移动到新位置

var sourceFolder = System.Windows.Forms.Application.StartupPath;
var targetFolder = Environment.GetFolderPath(Environment.SpecialFolder.CommonApplicationData);
var di = new DirectoryInfo(sourceFolder);
foreach (var file in di.EnumerateFiles("*.ini"))
    File.Move(file.FullName, Path.Combine(targetFolder, file.Name));

也许换一种说法,用户不必将文件复制到appdata,而应该在应用程序启动期间完成(我猜是这样)。