博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

FotoVision的配置文件FotoVision.exe.config

Posted on 2007-11-01 14:59  a-peng  阅读(742)  评论(0编辑  收藏  举报
对于web程序
     配置文件通常位于:根目录下且名称为web.config
对于客户端程序
     配置文件通常与应用程序位于同一目录,名称为应用程序名+".config"

应用程序FotoVision.exe
配置文件FotoVision.exe.config

通常我们会为应用程序创建App.Config此文件会位于根目录下.系统则会为你自动添加 应用程序名+".config"
位于 bin/debug/目录下
        有应用程序FotoVision.exe
        与配置文件FotoVision.exe.config
注意:App.Config名称不能更改 (默认系统不会为您添加配置文件,需自己创建)

都说了这是通常,所有也会有不通常.那就是FotoVision.
在FotoVision中你看不到配置文件FotoVision.exe.config 也看不到App.config
那是不是说它没有实现配置文件呢?它又有,那在哪呢?

在我的电脑上(注意是我的电脑,可不是你们的噢!)有以下路径是成立
C:\Documents and Settings\阿鹏\Application Data\FotoVision\1.0\FotoVision.exe.config
有没有感到一些奇怪呢?为什么要放在这里.

阿鹏是电脑的一个系统用户,即当前登录电脑的用户
Application Data文件夹是一个隐藏文件夹,所以你需要显示所有文件才行

系统会根据当前登录的用户自动加载他的Application Data文件夹下的内容
这也就是为什么FotoVision会在该目录中创建
FotoVision(产品名称)\1.0(版本)\FotoVision.exe.config(配置文件名称)
<configuration>
  
<appSettings>
    
<add key="PromptInitialMessage" value="False" />
    
<add key="PublishPhotoSize" value="500" />
    
<add key="LastAlbum" value="Babyssss" />
    
<add key="ImportLocation" value="F:\图库\3D酷图" />
    
<add key="EmailSubject" value="New photos are available" />
    
<add key="ServiceTimeout" value="90" />
    
<add key="ImportFilterIndex" value="2" />
    
<add key="DetailsPaneWidth" value="399" />
    
<add key="PromptFileDelete" value="true" />
    
<add key="AlbumPaneWidth" value="205" />
    
<add key="MaintainExifInfo" value="true" />
    
<add key="ShowStatusDetails" value="true" />
    
<add key="ServiceLocation" value="http://localhost/FotoVisionVB" />
    
<add key="PublishPhotoQuality" value="85" />
    
<add key="WindowPlacement" value="0,88,1007,636" />
    
<add key="CloseAfterUpload" value="true" />
  
</appSettings>
</configuration>
这是配置文件中的内容:自己添加的,关于具体的就先不管了,主要格式是
<configuration>
    <appSettings>
        <add key="" value="" />
    </appSettings>
</configuration>
我们可以利用它来存放使用该软件用户的具体设置,以做到更好的人机交互

先来说说我们怎么找到该配置文件的路径:
C:\Documents and Settings\阿鹏\Application Data\FotoVision\1.0\FotoVision.exe.config
只有先有这个路径我们才能实现对吧.当然这个路径可不是一个简单的字符串而已,你的电脑的系统用户可不一定是阿鹏

private void InitFilePath()
{
     
string[] ver = System.Windows.Forms.Application.ProductVersion.Split('.');
     
string app = string.Format(
                
"{0}\\{1}.{2}"
                System.Windows.Forms.Application.ProductName, 
                ver[
0], 
                ver[
1]
            );
/*
Application.ProductVersion产品版本为1.0.0.0 Application.ProductName产品名称为FotoVision 
则app为FotoVision\1.0
您可以右键查看FotoVision.exe的属性就会发现
*/

      
string folder = Path.Combine(
                Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData),
                app
            );
/*
Environment提供有关当前环境和平台的信息以及操作它们的方法
Environment.SpecialFolder指定用于检索系统特殊文件夹的目录路径的枚举常数
Environment.SpecialFolder.ApplicationData目录,它用作当前漫游用户的应用程序特定数据的公共储存库。 漫游用户在网络上的多台计算机上工作。漫游用户的配置文件保存在网络服务器上,当用户登录到某个系统上时,它会加载到该系统。
Environment.GetFolderPath()获取指向由指定枚举标识的系统特殊文件夹的路径

那么Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData)的值是什么呢?
C:\Documents and Settings\阿鹏\Application Data 

所以folder为C:\Documents and Settings\阿鹏\Application Data\FotoVision\1.0
*/

            
if (!Directory.Exists(folder))
                Directory.CreateDirectory(folder);

            FilePath 
= Path.Combine(folder, Path.GetFileName(System.Windows.Forms.Application.ExecutablePath) + ".config");
/*
FilePath为
C:\Documents and Settings\阿鹏\Application Data\产品名称\1.0\FotoVision.EXE.config

Application.ExecutablePath
为C:\Program Files\Smart Client Samples\FotoVision\1.0\VB\Desktop\Bin\FotoVision.exe为应用程序的可执行文件路径
*/

        }


这样FilePath就是我们想要的路径了C:\Documents and Settings\阿鹏\Application Data\产品名称\1.0\FotoVision.EXE.config
接下来我们就可以利用XmlTextWirter和XmlTextReader或XmlDocument来读写这个xml配置文件了

至于具体实现在下一篇实现里会详细说明