c# 追踪settings 文件

news/2025/2/12 17:30:18

在网上有很多人问到settings文件存放的位置,本人看了一些文章都没有给出明确的答案,所以让我们一起来追踪settings 文件到底存放在什么位置,它是否存在加密保护。

   settings 为设置文件,其功能类似于app.config 文件,但相比app.config settings 结构相对简单,它只有名称、类型、范围、值四个属性,并且不能更改结构(当然是在一般情况下,如要修改结构可以通过其它的方式)

   我们都知道app.config 文件在生成或debug后都会保存在相对的目录下/应用文件名.exe.config(窗口程序)

   问题来了,项目中的 pro.settings 编译后却找不到对应的文件。

   在程序代码中修改设置的内容。代码如下:

  view plaincopy to clipboardprint?
LoginSet.Default.IsSaveLog = true;  
LoginSet.Default.LogName = "testUser";  
LoginSet.Default.LogPassWord = "test";  
LoginSet.Default.IpAddress =  "127.0.0.1";  
LoginSet.Default.Save(); 
                    LoginSet.Default.IsSaveLog = true;
                    LoginSet.Default.LogName = "testUser";
                    LoginSet.Default.LogPassWord = "test";
                    LoginSet.Default.IpAddress =  "127.0.0.1";
                    LoginSet.Default.Save();

  在程序中修改了事先定义的几个测试值, 关掉程序后,重新启动设置值确实更改成功,那就表明 settings 是存放在磁盘上的。

  开始寻找它的位置->

          可以肯定settings文件的存放没有在执行程序的目录下,所以估计是保存在系统盘的临时目录下。

          做一次简单测试: 将执行程序拷贝一个副本到其它目录 再执行发现原来的设置值回到了初始状态,这就表明和应用程序的路径有关系,  并且副本程序,与原程序的settings 设置文件没有冲突,可独立使用。

         行踪发现了,在系统盘的 C:/Documents and Settings 目录下 查找你的执行程序文件名后 发现了这样一个文件,user.Config

  打开文件内容如下:

        view plaincopy to clipboardprint?
<?xml version="1.0" encoding="utf-8"?>  
<configuration>  
    <userSettings>  
        <Test.LoginSet>  
            <setting name="IsSaveLog" serializeAs="String">  
                <value>True</value>  
            </setting>  
            <setting name="LogName" serializeAs="String">  
                <value>testName</value>  
            </setting>  
            <setting name="LogPassWord" serializeAs="String">  
                <value>apace</value>  
            </setting>  
            <setting name="IpAddress" serializeAs="String">  
                <value>127.0.0.1</value>  
            </setting>  
        </Test.LoginSet>  
    </userSettings>  
</configuration> 
<?xml version="1.0" encoding="utf-8"?>
<configuration>
    <userSettings>
        <Test.LoginSet>
            <setting name="IsSaveLog" serializeAs="String">
                <value>True</value>
            </setting>
            <setting name="LogName" serializeAs="String">
                <value>testName</value>
            </setting>
            <setting name="LogPassWord" serializeAs="String">
                <value>apace</value>
            </setting>
            <setting name="IpAddress" serializeAs="String">
                <value>127.0.0.1</value>
            </setting>
        </Test.LoginSet>
    </userSettings>
</configuration>

找到了这正是我们需要查找的文件。

总结: 该文件的发现 得到一个结论,.Net 程序运行时都会拷贝一个副本到当前用户的临时目录下,零时目录名是不确定的,但前部分可以确定,本人默认目录是:C:/Documents and Settings/Administrator/Local Settings/Application Data/????/test.exe_Url_hgfoy0r3bz1vyaqbme2dl1uefmet0wso/1.0.0.0

  

         C:/Documents and Settings/Administrator/Local Settings/Application Data/ 这个是固定的,但会根据 不同用户 Administrator有所变化

         ???? 是本人的系统版本

         test.exe 应用程序名

         Url_hgfoy0r3bz1vyaqbme2dl1uefmet0wso 这串代码是根据你应用程序生成的MD5码值

        1.0.0.0 为程序版本号

 

 

本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/Gjack/archive/2010/03/18/5393259.aspx


https://dhexx.cn/news/show-1789203.html

相关文章

Java语言发展史和平台概述

1.java语言的发展史 java语言是詹姆斯高斯林&#xff08;James Gosling&#xff09;团队创造&#xff0c;属于sun公司&#xff0c;后被oracle收购。在被oracle收购后发行了新的版本。 詹姆斯高斯林&#xff08;James Gosling&#xff09;1977年获得了加拿大卡尔加里大学计算机科…

解决CentOS6.4上安装ipvsadm-1.26报错

最近研究一下LVSKeepalived&#xff0c;之前环境都是CentOS5的&#xff0c;这次在CentOS6.4中测试安装缺发现一点小问题&#xff0c;特意记录一下&#xff1a;ipvsadm-1.26.tar.gz (for kernel 2.6.28-rc3 or later) - February 8, 2011[roothost2 ~]# uname -r2.6.32-220.el6.…

160.高级主题之ThreadLocal

在多线程环境下去保证成员变量的安全&#xff0c;常用的方法&#xff0c;就是局部变量比使用全局变量好&#xff0c;因为局部变量只有线程自己能看见&#xff0c;不会影响其他线程。 ThreadLocal能够放一个线程级别的变量&#xff0c;其本身能够被多个线程共享使用&#xff0c…

C#实现程序的版本升级更新

我们做了程序&#xff0c;不免会有版本升级&#xff0c;这就需要程序有自动版本升级的功能。 那么看看我是如何实现程序自动更新的。 直接上代码&#xff1a; using System; using System.Collections.Generic; using System.Text; using System.Reflection; using …

OpenCart产品属性过滤(Atrribute Filter)功能插件

2019独角兽企业重金招聘Python工程师标准>>> 本功能插件如模块样放置于相关的页面&#xff0c;让产品的属性作为检索的条件&#xff0c;并且相关的属性之间是相关联的&#xff0c;如下图所示&#xff0c; 属性Memory中的8GB选中后&#xff0c;Processor属性中的Cloc…

Python GUI编程:制作一个文档图片提取软件

本文的文字及图片来源于网络,仅供学习、交流使用,不具有任何商业用途,版权归原作者所有,如有问题请及时联系我们以作处理 以下文章最早早起Python &#xff0c;作者GUI工作组 私信回复“资料”&#xff0c;即可免费领取Python实战案例讲解视频 Python GUI制作视频解析神器&am…

在Visual C#中用ListView显示数据记录

如果要你在程序中显示数据库中的数据记录&#xff0c;你首先想用的显示工具肯定是DataGrid。当然用DataGrid显示数据记录是一种既常用又简单的方法。但是在程序控制方面&#xff0c;它却无法那么随心所欲。本文就是介绍另外一种显示数据记录的方法--用ListView来显示数据记录&a…

161.高级主题之可重入锁

锁作为并发共享数据保证一致性的工具&#xff0c;大多数内置锁都是可重入的&#xff0c;也就是 说&#xff0c;如果某个线程试图获取一个已经由它自己持有的锁时&#xff0c;那么这个请求会立 刻成功&#xff0c;并且会将这个锁的计数值加1&#xff0c;而当线程退出同步代码块时…

STC12C5A60S2笔记3(I/O 端口)

1. 基本特性 STC 单片机IO口可由软件配置成四种工作模式&#xff1a; 1&#xff09;准双向口&#xff1a;标准51单片机模式&#xff0c;可用作输入和输出 2) 推挽输入输出&#xff1a;需要更大的驱动电流&#xff0c;当高电平时&#xff0c;拉电流20mA、当低电平时&#xff0c;…

Java基本概念:异常

一、简介 描述&#xff1a; 异常&#xff08;Exception&#xff09;指不期而至的各种状况&#xff0c;异常发生的原因有很多&#xff0c;通常包含以下几大类&#xff1a; 用户输入了非法数据。要打开的文件不存在。网络通信时连接中断&#xff0c;或者JVM内存溢出。异常是一个…