精华内容
下载资源
问答
  • 2021-05-10 01:50:53

    一.概述

    本文讲述了在Linux主机与windows主机之间如何互传文件的方法。因为有的时候,linux主机中的一些文件可能会在windows环境下用到。例如在linux主机中抓了一些图片,想把它们传到windows主机上以作为word文档的插图。又或者从Windows主机上网,下载了一些linux的软件包,想传到linux主机中安装。在这些情况下,都需要一种方法来进行两者之间的互通。

    本文采用ftp方式来传送文件,软件采用Serv-U。在widows主机下安装Serv-U,使其成为ftp服务器,在linux主机下通过ftp命令来上传和下载文件。经过试验,可以很好的满足需求。

    二.实验环境

    软件环境:

    A机:

    操作系统:windows2000, IP: 10.18.34.115.

    B机:

    操作系统:Linux Red Hat 9.0, IP:10.18.34.251.

    三.安装

    1. Serv-U的安装

    执行setup.exe, 全部选默认选项即可。

    2. Serv-U的常规设置

    在安装完成后,会弹出配置向导对话框,这里按要求填入相应信息,即可配置成功一个ftp服务器。这里A机的ip地址是10.18.34.115.按照安装向导做如下操作:

    1) IP address(IP地址):输入“10.18.34.115”。(如果使用动态的或无合法的IP地址则此项为空)。

    2) Domain name(域名):输入域名,例如“RoseRed”(此处随意)。

    3) Install as system server(安装成一个系统服务器吗):选“Yes”。

    4) Allow anonymous access(接受匿名登录吗):此处可根据自己需要选择,比如选“Yes”。

    5) anonymous home directory(匿名主目录):此处可输入(或选择)一个供匿名用户登录的主目录。

    6) Lock anonymous users in to their home directory(将用户锁定在刚才选定的主目录中吗):即是否将上步的主目录设为用户的根目录;一般选“Yes”。

    7) Create named account(建立其他帐号吗):此处询问是否建立普通登录用户帐号;一般选“Yes”。

    8) Account login name(用户登录名):普通用户帐号名,比如输入“yint”。

    9) Password(密码):设定用户密码。由于此处是用明文(而不是*)显示所输入的密码,因此只输一次。

    10) Home directory(主目录):输入(或选择)此用户的主目录,如“E:\”(本文将对E:\上的文件进行操作).

    11) Lock anonymous users in to their home directory(将用户锁定在主目录中吗):选“Yes”。

    12) Account admin privilege(帐号管理特权):一般使用它的默认值“No privilege”(普通帐号)。

    13) 最后选“Finish”(结束)即完成设置。

    建立好了一个FTP服务器,服务器地址为“RoseRed”,其下有两个用户,一个是匿名用户“Anonymous”,其密码为空;一个是普通用户“yint”,其密码为在向导中输入的内容。

    3. Serv-U的权限设置

    比如在左边的面板中选中“yint”用户,则在右边的面板中出现如下图的设置窗口。选“Dir Access”(目录存取权限)标签项,即可设置此用户在它的主目录(此处为“E:\”)下是否对文件拥有“Read”(读)、Write(写)、“Append”(写和添加)、“Delete”(删除)、“Execute”(执行)权限;是否对目录拥有“List”(显示文件和目录的列表)、“Create”(建立新目录)和“Remove”(修改目录,包括删除,移动,更名)权限等等。

    可根据需要进行设置,一般将Read, Write 选中。

    四、在linux下使用ftp命令

    1. 连接ftp服务器

    格式:ftp [hostname ip-address]

    a)在linux命令行下输入:ftp 10.18.34.115

    b)服务器询问你用户名和口令,分别输入yint和相应密码,待认证通过即可。

    2. 下载文件

    下载文件通常用get和mget这两条命令。

    a) get

    格式:get [remote-file] [local-file] 将文件从远端主机中传送至本地主机中。如要获取服务器上E:\rose\1.bmp,则:

    ftp> get /rose/1.bmp 1.bmp (回车)

    b) mget

    格式:mget [remote-files] 从远端主机接收一批文件至本地主机。如要获取服务器上E:\rose\下的所有文件,则:

    ftp> cd /rose ftp> mget *.* (回车)

    注意:文件都下载到了linux主机的当前目录下。比如,在/root/yint下运行的ftp命令,则文件都下载到了/root/yint下。

    3.上传文件

    a) put

    格式:put local-file [remote-file] 将本地一个文件传送至远端主机中。如要把本地的1.bmp传送到远端主机E:\rose,并改名为333.bmp

    ftp> put 1.bmp /rose/333.bmp (回车)

    b) mput

    格式:mput local-files将本地主机中一批文件传送至远端主机. 要把本地当前目录下所有bmp文件上传到服务器E:\rose 下

    ftp> cd /rose (回车) ftp> mput *.bmp(回车)

    注意:上传文件都来自于主机的当前目录下。比如,在/root/yint下运行的ftp命令,则只有在/root/yint下的文件linux才会上传到服务器E:\rose 下。

    更多相关内容
  • 分析了Win32系统下的虚拟内存系统模式及内存映射文件的工作机理,介绍了如何用Windows API将文件映射至内存,并通过实验数据得出,采用内存映射文件大数据量文件进行存取,其效率远远高于传统的基于I/O方式的...
  • UNIX系统的文件属性和存取权限Windows系统 电脑资料 作者NetDemon demon@20. .20. -------------------- 我们都知道 UNIX 是一个多用户的操作系统那么它是怎样来区分一个文件是属于谁的这个文件是什么类型的文件的呢...
  • 如何实现Linux与windows文件互传

    千次阅读 2021-05-09 02:39:05
    因为有的时候,linux主机的一些文件可能会在windows环境下用到。例如在linux主机抓了一些图片,想把它们传到windows主机上以作为word文档的插图。又或者从Windows主机上网,下载了一些linux的软件包,想传到...

    一.概述

    本文讲述了在Linux主机与windows主机之间如何互传文件的方法。因为有的时候,linux主机中的一些文件可能会在windows环境下用到。例如在linux主机中抓了一些图片,想把它们传到windows主机上以作为word文档的插图。又或者从Windows主机上网,下载了一些linux的软件包,想传到linux主机中安装。在这些情况下,都需要一种方法来进行两者之间的互通。

    本文采用ftp方式来传送文件,软件采用Serv-U。在widows主机下安装Serv-U,使其成为ftp服务器,在linux主机下通过ftp命令来上传和下载文件。经过试验,可以很好的满足需求。

    二.实验环境

    软件环境:

    A机:

    操作系统:windows2000, IP: 10.18.34.115.

    B机:

    操作系统:Linux Red Hat 9.0, IP:10.18.34.251.

    三.安装

    1. Serv-U的安装

    执行setup.exe, 全部选默认选项即可。

    2. Serv-U的常规设置

    在安装完成后,会弹出配置向导对话框,这里按要求填入相应信息,即可配置成功一个ftp服务器。这里A机的ip地址是10.18.34.115.按照安装向导做如下操作:

    1) IP address(IP地址):输入“10.18.34.115”。(如果使用动态的或无合法的IP地址则此项为空)。

    2) Domain name(域名):输入域名,例如“RoseRed”(此处随意)。

    3) Install as system server(安装成一个系统服务器吗):选“Yes”。

    4) Allow anonymous access(接受匿名登录吗):此处可根据自己需要选择,比如选“Yes”。 www.45it.com(电脑软硬件应用网)

    5) anonymous home directory(匿名主目录):此处可输入(或选择)一个供匿名用户登录的主目录。

    6) Lock anonymous users in to their home directory(将用户锁定在刚才选定的主目录中吗):即是否将上步的主目录设为用户的根目录;一般选“Yes”。

    7) Create named account(建立其他帐号吗):此处询问是否建立普通登录用户帐号;一般选“Yes”。

    8) Account login name(用户登录名):普通用户帐号名,比如输入“yint”。

    9) Password(密码):设定用户密码。由于此处是用明文(而不是*)显示所输入的密码,因此只输一次。

    10) Home directory(主目录):输入(或选择)此用户的主目录,如“E:\”(本文将对E:\上的文件进行操作).

    11) Lock anonymous users in to their home directory(将用户锁定在主目录中吗):选“Yes”。

    12) Account admin privilege(帐号管理特权):一般使用它的默认值“No privilege”(普通帐号)。

    13) 最后选“Finish”(结束)即完成设置。

    建立好了一个FTP服务器,服务器地址为“RoseRed”,其下有两个用户,一个是匿名用户“Anonymous”,其密码为空;一个是普通用户“yint”,其密码为在向导中输入的内容。

    3. Serv-U的权限设置

    比如在左边的面板中选中“yint”用户,则在右边的面板中出现如下图的设置窗口。选“Dir Access”(目录存取权限)标签项,即可设置此用户在它的主目录(此处为“E:\”)下是否对文件拥有“Read”(读)、Write(写)、“Append”(写和添加)、“Delete”(删除)、“Execute”(执行)权限;是否对目录拥有“List”(显示文件和目录的列表)、“Create”(建立新目录)和“Remove”(修改目录,包括删除,移动,更名)权限等等。

    可根据需要进行设置,一般将Read, Write 选中。

    四、在linux下使用ftp命令

    1. 连接ftp服务器

    格式:ftp [hostname ip-address]

    a)在linux命令行下输入:ftp 10.18.34.115

    b)服务器询问你用户名和口令,分别输入yint和相应密码,待认证通过即可。

    2. 下载文件

    下载文件通常用get和mget这两条命令。

    a) get

    格式:get [remote-file] [local-file] 将文件从远端主机中传送至本地主机中。如要获取服务器上E:\rose\1.bmp,则:

    ftp> get /rose/1.bmp 1.bmp (回车)

    b) mget

    格式:mget [remote-files] 从远端主机接收一批文件至本地主机。如要获取服务器上E:\rose\下的所有文件,则:

    ftp> cd /rose ftp> mget *.* (回车)

    注意:文件都下载到了linux主机的当前目录下。比如,在/root/yint下运行的ftp命令,则文件都下载到了/root/yint下。

    3.上传文件

    a) put

    格式:put local-file [remote-file] 将本地一个文件传送至远端主机中。如要把本地的1.bmp传送到远端主机E:\rose,并改名为333.bmp

    ftp> put 1.bmp /rose/333.bmp (回车)

    b) mput

    格式:mput local-files将本地主机中一批文件传送至远端主机. 要把本地当前目录下所有bmp文件上传到服务器E:\rose 下

    ftp> cd /rose (回车) ftp> mput *.bmp(回车)

    注意:上传文件都来自于主机的当前目录下。比如,在/root/yint下运行的ftp命令,则只有在/root/yint下的文件linux才会上传到服务器E:\rose 下。

    展开全文
  • 在ASP,FSO的意思是File System Object,即文件系统对象。我们将要操纵的计算机文件系统,在这里是指位于web服务器之上。所以,确认你对此拥有合适的权限。理想情况下,你可以在自己的机器上建立一个web服务器,...
  • Windows Server2012R2文件服务器安装与配置

    万次阅读 多人点赞 2019-10-11 13:08:45
    为了配合文件服务器的权限管理,从Windows Server 2008新增了文件服务器资源管理器,其实在Windows Server 2003里面也有文件服务器资源管理器的功能,只是放于DFS功能模块里面了。 文件服务器资源管理器是一组可让你...

    一、文件服务器的基础说明
    文件服务器是企业里面用的最多的服务器之一,它主要用于提供文件共享。
    为了配合文件服务器的权限管理,从Windows Server 2008新增了文件服务器资源管理器,其实在Windows Server 2003里面也有文件服务器资源管理器的功能,只是放于DFS功能模块里面了。
    文件服务器资源管理器是一组可让你对文件服务器上存储的数据进行管理和分类的功能。文件服务器资源管理器包括以下功能:
    文件分类基础结构 文件分类基础结构通过分类流程的自动化提供对数据的洞察力,从而让你更有效地管理数据。你可以基于此分类对文件进行分类并应用策略。示例策略包括限制访问文件的动态访问控制、文件加密和文件过期。可以使用文件分类规则自动分类文件,也可以修改所选文件或文件夹的属性手动分类文件。
    文件管理任务 文件管理任务可让你基于分类对文件应用有条件的策略或操作。文件管理任务的条件包括文件位置、分类属性、创建文件的数据、文件的上一次修改日期或上一次访问文件的时间。文件管理任务可以采取的操作包括使文件过期、加密文件的功能,或运行自定义命令的功能。
    配额管理 配额允许你限制卷或文件夹可拥有的空间,并且它们可自动应用于卷上创建的新文件夹。你还可以定义可应用于新卷或文件夹的配额模板。
    文件屏蔽管理 文件屏蔽可帮助控制用户可存储在文件服务器上的文件类型。你可以限制可存储在共享文件上的扩展名。例如,你可以创建文件屏蔽,不允许包含 MP3 扩展名的文件存储在文件服务器上的个人共享文件夹上。
    存储报告 存储报告可用于帮助你确定磁盘使用的趋势以及数据分类的方式。你还可以监视尝试要保存未授权文件的一组所选用户。
    通过使用文件服务器资源管理器 Microsoft 管理控制台 (MMC) 或使用 Windows PowerShell,可以配置和管理文件服务器资源管理器包含的功能。
    二、文件服务器的基础安装
    1、在服务器管理界面点击“添加角色和功能”,进入到“选择服务器角色”,选择 “文件服务器”与“文件服务器资源管理器” 。
    在这里插入图片描述
    2、进入确认界面,确认需要安装的服务、角色、功能
    在这里插入图片描述
    3、安装完成,点击“关闭”
    在这里插入图片描述
    03 文件服务器配置共享
    1、点击“文件和存储服务”选择“共享”,然后点击“若要创建文件共享,请启动新加共享向导”
    在这里插入图片描述
    2、这里我们可以看到五种方式的共享方式,这里我们简单说一下:
    第一种:SMB共享-快速
    最简单的方式,类似于简单共享,且类似于public目录,就是所有人都具有完全控制权限
    第二种:SMB共享-高级
    在这里面可以设置对应的文件类型与配额限制,这里再附带说一下文件类型与配额限制
    文件类型:文件类型这个功能是Windows Server 2012 新增的功能,主要的用途是根据不同的文件类型可以自动或手动分类。具体后面我们再做详细说明。
    配额限制:在Windows Server 2003中是配额限制只能针对磁盘,而Windows Server 2012 R2的配额限制,可以针对文件夹与磁盘两种。
    第三种:SMB共享-应用程序
    其实这个功能在我看来它是为专门给Hyper-V开发的,如果你将一台文件服务器作为存储,然后所有的Hyper-V虚拟机系统存储在文件服务器上,再做一个负载、冗余也不失为一个好的选择。
    第四 、五 种:NFS共享-快速、NFS共享-高级
    主要用于Linux服务器的共享使用,这里我们不做具体的说明。
    在这里插入图片描述
    3、这里我们主要说一下第二种,选择“SMB共享-高级“,点击”下一步“
    在这里插入图片描述
    4、这里选择共享的路径
    在这里插入图片描述
    5、设置共享名称
    在这里插入图片描述
    6、在下图中我们可以看到几个功能,基本上都是Windows Server 2012 R2新增或加强的功能,下面我们简单来说一下这些功能:
    启用基于存取的枚举:简单一点说就是如果A用户只能访问A目录的权限,那他就不会看到共享下面的B目录,就不会出现点击B目录没有访问权限的提示了,这样增强了用户体验,同时也加强文件服务器的安全性。
    允许共享缓存:有两种模式:分布式缓存模式、托管式缓存模式。前者主要用于办事处等没有服务器场所,后者主要用于分支机构,集中式管理所有缓存的文件信息。
    加密数据访问:在共享文件传输的时候,会对数据进行加密,以提高数据的传输安全性。(针对WIN7系统建议不要勾选)
    在这里插入图片描述
    7、我们先禁用继承的权限,再手动添加权限在这里插入图片描述
    在这里插入图片描述
    8、这时候目录权限为空,我们再点击“添加”
    在这里插入图片描述
    9、然后点击“选择主体”
    在这里插入图片描述
    10、输入要设置对应权限的用户
    在这里插入图片描述
    11、然后设置对应的权限
    在这里插入图片描述
    12、点击两次确定,这时候就已经设置好了对应的文件夹的访问权限了。提示: 在配置权限的时候,你必需要配置一个具体完全控制权限的用户,不然的话,后面创建SMB的时候会失败。
    在这里插入图片描述
    13、这是设置文件夹的用途有四种,主要用于分类规则管理等,这里我们选择 “ 用户文件 ”
    在这里插入图片描述
    14、我们暂时不启用配额,后面再来启用
    在这里插入图片描述
    15、确认配置信息,点击”创建“
    在这里插入图片描述
    16、创建完成
    在这里插入图片描述
    17、这时候我们可以在管理界面上面看到一些常规的应用信息如共享的文件夹、路径、协议、是否群集、空间大小等。
    在这里插入图片描述

    18、下面我们来做一个共享访问测试,已经可以成功访问共享了。
    在这里插入图片描述
    19、这时候我们可以在里面添加删除修改文件夹及文件了,到此文件服务器的常规部署已经完成。

    04 枚举功能测试
    什么叫做枚举功能,简单的说就是当你访问共享的时候,你只会看到自己有权限访问的文件或文件夹,而别人看不到,当然别人访问的时候也就只有看到相对应的自己的,这样子就有一个好处,第一提高了用户体验度,不用去在一大堆的文件夹里面找自己需要的文件夹或文件,一眼就可以看得到。第二是提高了用户文件的安全性当然这只是相对而言。
    1、首先将 共享目录的权限设置为所有人都完全控制

    在这里插入图片描述
    2、新建test01和test02两个目录
    在这里插入图片描述
    3、设置test01目录的权限给test01用户
    在这里插入图片描述
    4、设置test02目录的权限给test02用户
    在这里插入图片描述
    5、测试通过test01用户登录登录共享,这时候Test01用户只能看到test01目录
    在这里插入图片描述
    test01用户同理!
    这样子就实现了枚举功能,不同用户登录显示不同目录,以提高用户体验与文件服务器安全性了。

    下篇将演示文件屏蔽功能与配置全局配额!!!
    下篇标题“Windows Server2012R2文件服务器文件屏蔽功能与配置全局配额”

    展开全文
  • 在Visual C++ 6.0下对Windows配置设置文件存取访问方法的详细介绍。  一、 引言  二、 配置设置文件概述  配置文件里的信息之所以能为系统和众多的软件所读取并识别,是由于其内部数据的存取采用了...

    在Visual C++ 6.0下对Windows配置设置文件的存取访问方法的详细介绍。
      一、 引言
      二、 配置设置文件概述
      配置文件里的信息之所以能为系统和众多的软件所读取并识别,是由于其内部对数据的存取采用了预先约定好的"-值对(entry-value pairs"存储结构来对待存取的数据进行分门别类地进行条理清晰的存储。我们可以打开系统目录下的win.ini文件:
    [windows]
    load=
    run=
    NullPort=None
    [Desktop]
    WallpaperStyle=2
    Pattern=()
    [intl]
    s2359=PM
    iCountry=86
    ……
      可见,配置文件把信息分成若干"",节标题放在方括号中,如[Desktop]就是Desktop节,在一个节内包含了一些与之相关相近的"",并通过等号对其进行赋值。一般的形式如下所示:
    [SECTION]
    ENTRY=VALUE
      其中VALUE值可以有两种类型:数值型和字符串型,而且Windows操作系统专门为此提供了6API函数来对配置设置文件进行读、写:
      GetPrivateProfileInt() 从私有初始化文件获取整型数值
      GetPrivateProfileString() 从私有初始化文件获取字符串型值
      GetProfileInt win.ini 获取整数值
      GetProfileString win.ini 获取字符串值
      WritePrivateProfileString 写字符串到私有初始化文件
      WriteProfileString 写字符串到win.ini
      在这里需要指出:当向配置文件存储信息时,不论是数据还是字符串都要先转换成字符串,然后再行存储。
    利用GetPrivateProfileString读取配置文件(.ini)
    配置文件中经常用到ini文件,在VC中其函数分别为:
    写入.ini文件:bool WritePrivateProfileString(LPCTSTR lpAppName,LPCTSTR lpKeyName,LPCTSTR lpString,LPCTSTR lpFileName);
    读取.ini文件:DWORD GetPrivateProfileString(LPCTSTR lpAppName,LPCTSTR lpKeyName,LPCTSTR lpDefaut,LPSTR lpReturnedString,DWORD nSize,LPCTSTR lpFileName);
    读取整形值:UINT GetPrivateProfileInt(LPCTSTR lpAppName,LPCTSTR lpKeyName,INT nDefault,LPCTSTR lpFileName);
    其中个参数的意思:
    LPCTSTR lpAppName ------- INI文件中的一个字段名
    LPCTSTR lpKeyName -------- lpAppName 下的一个键名,也就是里面具体的变量名
    LPCTSTR lpString ---------是键值,也就是变量的值, 必须为LPCTSTRCString类型
    LPCTSTR lpFileName --------完整的INI文件路径名
    LPCTSTR lpDefaut ----------如果没有其前两个参数值,则将此值赋给变量
    LPSTR lpReturnedString --------接收INI文件中的值的CString对象,即接收缓冲区
    DWORD nSize ------接收缓冲区的大小
    例子:
    CString StrName,Strtemp;
    int nAge;
    StrName = "jacky";
    nAge = 13;
    WritePrivateProfileString("Student","Name",StrName,"c:\\setting.ini");
    结果:(INI文件中显示如下:)
    [Student]
    Name=jacky
    读取:
    CString SName;
    GetPrivateProfileString("Student","Name","DefaultName",SName.GetBuffer(MAX_LENGTH),MAX_LENGTH,"c:\\setting.ini");
    结果:SName = "jacky";这里需要注意点就是用完GetBuffer函数后一定要释放(SName.ReleaseBuffer()函数),不然后面再用到SName的其他子函数就会失灵。
    读整数比较简单,如下
    int Result = GetPrivateProfileInt("Student","nAge",0,"c:\\setting.ini")返回值即为所读取的结果!
    GetPrivateProfileString最后一个参数是配置文件路径的参数,此路径只能是绝对路径,不能是相对路径,但现在我需要是我的exe文件能和我的配置文件在一起。因此我使用了GetCurrentDirectory函数。
    原代码如下:
    CString server_ip;
    CString des="";
    ::GetCurrentDirectory(MAX_PATHLENGTH,des.GetBuffer(MAX_PATHLENGTH));
    des.ReleaseBuffer();
    des+="\\config.ini";
    GetPrivateProfileString("PhoneDemo","Server_IP","",server_ip.GetBufferSetLength(15),15,des);
    server_ip.ReleaseBuffer();
    注意:在这里使用CString变量时,在使用完GetBuffer后,紧接着一定要使用ReleaseBuffer()函数,才可以进行其他的诸如字符串+操作
     
     
     
     
     
     
    vc 读写 init文件(软件配置)
    VC中用函数读写ini文件的方法     
    ini文件(Initialization file),这种类型的文件中通常存放的是一个程序的初始化信息。ini文件由若干个节(Section)组成,每个Section由若干键(Key)组成,每个Key可以赋相应的值。读写ini文件实际上就是读写某个的Section中相应的Key的值,而这只要借助几个函数即可完成。
    一、向ini文件中写入信息的函数
    1. 把信息写入系统的win.ini文件
    BOOL WriteProfileString(
         LPCTSTR lpAppName, // 节的名字,是一个以0结束的字符串
         LPCTSTR lpKeyName, // 键的名字,是一个以0结束的字符串。若为NULL,则删除整个节
         LPCTSTR lpString      // 键的值,是一个以0结束的字符串。若为NULL,则删除对应的键
    )
    2. 把信息写入自己定义的.ini文件
    BOOL WritePrivateProfileString(
         LPCTSTR lpAppName,     // 同上
         LPCTSTR lpKeyName,     // 同上
         LPCTSTR lpString,      // 同上
         LPCTSTR lpFileName     // 要写入的文件的文件名。若该ini文件与程序在同一个目录下,也可使用相对
               //路径,否则需要给出绝度路径。
    )
    如:
    ::WriteProfileString("Test","id","xym");  
    //win.ini中创建一个Test节,并在该节中创建一个键id,其值为xym
    ::WritePrivateProfileString("Test","id","xym","d:\\vc\\Ex1\\ex1.ini");
    //Ex1目录下的ex1.ini中创建一个Test节,并在该节中创建一个键id,其值为xym
    //Ex1.ini文件与读写该文件的程序在同一个目录下,则上面语句也可写为:
    ::WritePrivateProfileString("Test","id","xym",".\\ex1.ini");
    需要注意的是,C系列的语言中,转义字符'\\'表示反斜线'\'。另外,当使用相对路径时,\\前的.号不能丢掉了。
    二、从ini文件中读取数据的函数
    1、从系统的win.ini文件中读取信息
    (1) 读取字符串
    DWORD GetProfileString(
         LPCTSTR lpAppName,           // 节名
         LPCTSTR lpKeyName,           // 键名,读取该键的值
         LPCTSTR lpDefault,           // 若指定的键不存在,该值作为读取的默认值
         LPTSTR lpReturnedString,     // 一个指向缓冲区的指针,接收读取的字符串
         DWORD nSize                  // 指定lpReturnedString指向的缓冲区的大小
    )
    如:
    CString str;
    ::GetProfileString("Test","id","Error",str.GetBuffer(20),20);
    (2) 读取整数
    UINT GetProfileInt(
         LPCTSTR lpAppName,     // 同上
         LPCTSTR lpKeyName,     // 同上
         INT nDefault           // 若指定的键名不存在,该值作为读取的默认值
    )
    如使用以下语句写入了年龄信息:
    ::WriteProfileString("Test","age","25");  
    //win.ini中创建一个Test节,并在该节中创建一个键age,其值为25
    则可用以下语句读取age键的值:
    int age;
    age=::GetProfileInt("Test","age",0);
    2、从自己的ini文件中读取信息
    (1) 读取字符串
    DWORD GetPrivateProfileString(
         LPCTSTR lpAppName,           // 1(1)
         LPCTSTR lpKeyName,           // 1(1)
         LPCTSTR lpDefault,           // 1(1)
         LPTSTR lpReturnedString,     // 1(1)
         DWORD nSize,                 // 1(1)
         LPCTSTR lpFileName           // 读取信息的文件名。若该ini文件与程序在同一个目录下,也可使用相      
               //对路径,否则需要给出绝度路径。
    )
    如:
    CString str;
    ::GetPrivateProfileString("Test","id","Error",str.GetBuffer(20),20".\\ex1.ini");
    或:
    ::GetPrivateProfileString("Test","id","Error",str.GetBuffer(20),20"d:\\vc\\Ex1\\ex1.ini");
    (2) 读取整数
    UINT GetPrivateProfileInt(
         LPCTSTR lpAppName,     // 同上
         LPCTSTR lpKeyName,     // 同上
         INT nDefault,          // 若指定的键名不存在,该值作为读取的默认值
         LPCTSTR lpFileName     // 同上
    )
    如使用以下语句写入了年龄信息:
    ::WritePrivateProfileString("Test","age","25",".\\ex1.ini");  
    //ex1.ini中创建一个Test节,并在该节中创建一个键age,其值为25
    则可用以下语句读取age键的值:
    int age;
    age=::GetPrivateProfileInt("Test","age",0,".\\ex1.ini");
    三、 删除键值或节
          回顾一下WriteProfileString函数的说明
    BOOL WriteProfileString(
         LPCTSTR lpAppName, // 节的名字,是一个以0结束的字符串
         LPCTSTR lpKeyName, // 键的名字,是一个以0结束的字符串。若为NULL,则删除整个节
         LPCTSTR lpString      // 键的值,是一个以0结束的字符串。若为NULL,则删除对应的键
    )
          由此可见,要删除某个节,只需要将WriteProfileString第二个参数设为NULL即可。而要删除某个键,则只需要将该函数的第三个参数设为NULL即可。这是删除系统的win.ini中的节或键,类似的,要删除自己定义的ini文件中的节或键,也可做相同的操作。
          如:
    ::WriteProfileString("Test",NULL,NULL);     //删除win.ini中的Test
    ::WriteProfileString("Test","id",NULL);     //删除win.ini中的id
    ::WritePrivateProfileString("Test",NULL,NULL,".\\ex1.ini");     //删除ex1.ini中的Test
    ::WritePrivateProfileString("Test","id",NULL,".\\ex1.ini");     //删除ex1.ini中的id
    四、如何判断一个ini文件中有多少个节
          要判断一个ini文件中有多少个节,最简单的办法就是将所有的节名都找出来,然后统计节名的个数。而要将所有的节名找出来,使用GetPrivateProfileSectionNames函数就可以了,其原型如下:
    DWORD GetPrivateProfileSectionNames(
         LPTSTR lpszReturnBuffer,     // 指向一个缓冲区,用来保存返回的所有节名
         DWORD nSize,                 // 参数lpszReturnBuffer的大小
         LPCTSTR lpFileName           // 文件名,若该ini文件与程序在同一个目录下,
                                                   //也可使用相对路径,否则需要给出绝度路径
    )
    下面的是用来统计一个ini文件中共有多少个节的函数,当然,如果需要同时找到每个节中的各个键及其值,根据找到节名就可以很容易的得到了。
    /*统计共有多少个节
    节名的分离方法:若chSectionNames数组的第一字符是'\0'字符,则表明
    0个节。否则,从chSectionNames数组的第一个字符开始,顺序往后找,
    直到找到一个'\0'字符,若该字符的后继字符不是 '\0'字符,则表明前
    面的字符组成一个节名。若连续找到两个'\0'字符,则统计结束*/
    int CTestDlg::CalcCount(void)
    {
    TCHAR      chSectionNames[2048]={0};      //所有节名组成的字符数组
    char * pSectionName; //保存找到的某个节名字符串的首地址
    int i;      //i指向数组chSectionNames的某个位置,从0开始,顺序后移
    int j=0;     //j用来保存下一个节名字符串的首地址相对于当前i的位置偏移量
    int count=0;     //统计节的个数
    //CString name;
    //char id[20];
    ::GetPrivateProfileSectionNames(chSectionNames,2048,".\\ex1.ini");   
    for(i=0;i<2048;i++,j++)
    {
         if(chSectionNames[0]=='\0')
          break;      //如果第一个字符就是0,则说明ini中一个节也没有
         if(chSectionNames[i]=='\0')
         {
          pSectionName=&chSectionNames[i-j]; //找到一个0,则说明从这个字符往前,减掉j个偏移量,
               //就是一个节名的首地址
          j=-1;        //找到一个节名后,j的值要还原,以统计下一个节名地址的偏移量
               //赋成-1是因为节名字符串的最后一个字符0是终止符,不能作为节名 
               //的一部分 
          /*::GetPrivateProfileString(pSectionName,"id","Error",id,20,".\\ex1.ini");
          name.Format("%s",id);*/   
          //在获取节名的时候可以获取该节中键的值,前提是我们知道该节中有哪些键。
       
          AfxMessageBox(pSectionName);     //把找到的显示出来
          if(chSectionNames[i+1]==0)
          {
            break;     //当两个相邻的字符都是0时,则所有的节名都已找到,循环终止
          }
         }   
      
    }
    return count;
    }
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
    C技巧:VC读取和分析格式化文本配置文件(1)
     
    大多数的应用程序都有需要配置的参数,配置参数的保存有多种方法,比如采用数据库保存、二进制文件保存、格式化的文本文件保存,各有优缺点,对于一般小的安全性要求不高应用程序,推荐采用格式化文本文件保存方式,这样可以节约编辑修改的界面编程,使用记事本程序编辑即可。 
      早期的windows就是采用的INI格式文本文件。现在很多应用程序包括大型的软件也还在采用格式化文本文件保存配置参数,比如Bentely MicroStation GIS平台GEOGRAPHICS8.0
      本文给出的就是利用VC来读取和分析配置文本文件,这是笔者这消防监控系统远程终端软件使用的方法。同时给出一个C++类来封装配置文本文件的读取分析。
      下面是我采用的配置文件的例子,包含单个参数定义,表格参数定义,注释:
      // 协议名称: TL
      // 工程: SQ
      // 配置人: JY
      #DEFINE_BEGIN //以下为常量定义
      //通信参数
      @COM_PORT \\\\.\\COM1 //COM
      @COM_BAUDRATE 1200 //波特率
      @COM_BITSIZE 8 //数据位 number of bits/byte, 4-8
      @COM_STOPBIT 0 // 0,1,2 对应 1, 1.5, 2
      @COM_PARITY 0 //0-4对应no,odd,even,mark,space
      @STATIONNO 0 //终端号
      @TCPIP_SERVERIP 192.168.0.10 //服务器IP地址
      @TCPIP_PORTNO 3024 //端口
      #DEFINE_END
      #TABLE_BEGIN //表格
      //编号 识别字符串
      //例子如下
      0 Ion Detector, ALU1, L1S43 //测量台2#离子烟感探测器 报警
      1 Thermal Det, ALU1, L1S39 //值班室温感探测器报警
      #TABLE_END
      语法解释:
      // 单行注释
      #DEFINE_BEGIN 单个参数定义的开始标记
      #DEFINE_END 单个参数定义的结束标记
      #TABLE_BEGIN 表格参数开始标记
      #TABLE_END 表格参数结束标记
      单个参数的配置:
      每个参数一行:以空格、TAB制表符作为分隔,注释可选,每行结束后有Enter键换行。
      表格参数配置:第一列为数字编号,作为ID用,第一列和第二列之间采用空格、TAB制表符作为分隔,其他列之间采用’,’逗号、空格、TAB制表符分隔,因此从第二列起,字符串中间夹的空格是有效字符。比如上面例子中的第一行解释如下:
      \"0\",\"Ion Detector\",\"ALU1\",\"L1S43\"
      同样,表格参数也是每行有Enter键换行。
      下面给出一个C++类来完成这个格式的文本配置读取和分析。
      规模:
      文本文件的大小:<48kbytes
      单个参数定义个数:不限
      表格参数定义: 100行 X 4
      这些规模大小可以修改下面的宏定义来满足你的需要
      #define TABLE_MAXROW 100
      #define TABLE_MAXCOL 5 //含索引ID
      typedef struct{
      int nID;
      char s[TABLE_MAXCOL-1][64];
      }TAG_TABLEREC,*LPTABLEREC;
      class CDataTxt
      {
      public:
      CDataTxt();
      ~CDataTxt();
      CString m_szPath;//配置文件全路经名
      BOOL Read();//读入文件
     

          不论是对于程序开发人员还是软件应用人员,一定不会对扩展名为"ini"的文件感到陌生,不仅Windows操作系统将大名鼎鼎的win.ini作为记录当前系统状态,并根据其记录内容对系统进行配置的一种便捷的方法,而且众多的应用软件也广泛地使用该类型的配置文件来对软件进行记录、配置。本文就针对配置设置文件的使用展开讨论,以期能为软件状态的记录与设置寻求一种方便简洁的实现方法。

      配置设置文件是Windows操作系统下的一种特殊化的ASCII文件,以"ini"为文件扩展名。该文件也被称做是初始化文件(initialization file)和概要文件(profile),通常应用程序可以拥有自己的配置设置文件来存储自己的状态信息,一般来说私有的配置设置文件比较小,可以减少程序在初始化时读取配置文件时的信息量,从而可以提高程序的启动速度、提高应用程序和系统的性能。但如待存取的信息涉及到Windows系统环境或是其他的应用程序时才必须在Windows系统的配置文件win.ini中记录并在访问的同时发送出消息WM_WININICHANGE给所有的顶层窗口,通知其他的程序系统的配置文件已做了更改。但由于win.ini中不仅记录了系统的有关信息,也存储着许多其他应用软件的一些配置数据,所以访问的数据量要远比私有的配置文件大的多。

    展开全文
  • Windows Server 2012搭建文件服务器

    万次阅读 多人点赞 2020-04-12 22:29:50
    文件服务器是企业里面用的最多的服务器之一,它主要用于提供文件共享。 下面我们一步一步来搭建它~ 1. 打开Windows server管理面板,选择添加角色和功能 到服务器角色这一步的时候,选中文件服务器和文件服务器...
  • 文件服务器(File server),又称档案伺服器,是指在计算机网络环境,所有用户都可访问的文件存储设备,是一种专供其他电脑检索文件和存储的特殊电脑。 文件服务器通常比一般的个人电脑拥有更大的存储容量,并...
  • C/C++文件读写操作 —— windowsAPI

    千次阅读 2018-08-13 16:34:07
    在ANSI C对文件的操作分为两种方式,即流式文件操作和I/O文件操作,下面就分别介绍之。 一、流式文件操作 这种方式文件操作有一个重要的结构FILE,FILE在头文件stdio.h定义如下: typedef struct { int ...
  • VC++实现Windows回收站的文件存取

    千次阅读 2012-09-08 12:19:33
    VC++实现Windows回收站的文件存取  在进行文件操作时,可以使用CFile类的Remove()函数来删除一个文件,但是这样的操作将永久性的删除该文件,不能在必要的时候再恢复该文件,解决这个问题的唯一方法就是把文件...
  • 顺序文件,是按照从头到尾的顺序进行存取操作的,文件中的信息就象在一条长长的队列排列一样。索引文件是指在主文件之外再建立一个表示关键字与其物理记录之间对应关系的表,称为索引表。索引表与主文件共同构成...
  • 第5章 文件系统 文件管理功能的概述: 1.计算机存放的,处理的,流动的都是消息: ...这些文件进行分类, 如何保障不同信息之间的安全, 如何将各种信息与用户进行联系, 如何使信息不同的逻辑结构...
  • VC怎么读取文件

    千次阅读 2019-08-21 08:48:01
    FILE_FLAG_POSIX_SEMANTICS 指明按照操作系统接口规范进行文件存取,这包括允许多文件名的使用。请谨慎使用,因为MS_DOS或16位Windows系统可能不支持; FILE_FLAG_OPEN_REPARSE_POINT 这个标志指明禁止文件系统的重...
  • 查看,本部门内部的某些敏感资料也并非全部部门员工都有权限查看,故在设计和构建 文件共享服务器时,需要利用Windows2008服务器、交换机、客户端本身在内的三个等级 的用户、密码登录机制,每个员工进行权限设定...
  • 计算机存放了各种各样的文件: 一个文件具有哪些属性? 文件内部的数据应该被怎样组织起来? 文件之间又应该怎么组织起来? 从下往上看Operation System应该提供哪些功能才能方便用户、应用程序使用文件? 从...
  • windows中的文件名

    千次阅读 2018-10-21 11:45:00
    为了区分不同的文件,必须给每个文件命名,计算机对文件实行按名存取的操作方式。  DOS操作系统规定文件名由文件主名和扩展名组成,文件主名由1~8个字符组成,扩展名由1~3个字符组成,主名和扩展名之间由一个小圆点...
  • 操作系统之文件管理

    千次阅读 多人点赞 2020-09-22 03:05:15
    文件磁盘的抽象 所谓文件是指一组带标识(标识即为文件名)的、在逻辑上有完整意义的信息项的序列。 信息项:构成文件内容的基本单位(单个字节,或多个字节),各信息项之间具有顺序关系 文件内容的意义:由...
  • 文章目录前言知识总览无结构文件有结构文件有结构文件的逻辑结构1、顺序文件2、索引文件3、索引顺序文件检索效率分析多级索引顺序文件知识点回顾与重要考点 前言 此篇文章是我在B站学习时所做的笔记,部分为亲自动手...
  • #include <Windows.h>#define OK 0 #define MMF_FILE_SIZE (1024*512)const char* mmf_file_name = "d:\\mmf.txt"; const char* mmf_share_name = "testmmf";//定义内存映射文件相关的全局变量 HANDLE file_hand
  • 深入理解操作系统原理之文件系统

    万次阅读 多人点赞 2017-07-04 15:15:39
    计算机系统系统软件资源:无论是程序或数据、系统软件或应用软件都以文件方式来管理。文件是存贮在某种介质上的(如磁盘、磁带等)并具有文件名的一组有序信息的集合。 文件名是由字符和数字组成的,例如MS-DOS...
  • windows文件创建时间晚于修改时间的猫腻: 文件移动目录会改变创建时间。 分别创建两个目录A、B,分别在两个目录里面创建两个文件a.TXT,b.TXT。 理论上讲A的time&gt;B的Time文件系统: 文件系统是操作...
  • 第2章 Windows操作系统及其应用

    千次阅读 2021-04-12 22:21:51
    2.0 Windows考试内容与要求 (1)Windows基本知识 ...(3)Windows文件、文件夹(目录)、逻辑盘、路径的概念 (4)Windows窗口的组成 (5)Windows的菜单 (6)Windows的剪切板 2.2 Windows基本知识 (1)
  • Windows/System32目录下所有文件详解

    千次阅读 2016-10-05 18:19:30
    ACCESS.CHM - Windows帮助文件 ACCSTAT.EXE - 辅助状态指示器 ADVAPI32.DLL - 高级Win32应用程序接口 AHA154X.MPD - SCSI驱动程序 AM1500T.VXT - 网卡驱动程序 AM2100.DOS - 网卡驱动程序 APPSTART.ANI - 动画...
  • Windows 7操作系统

    千次阅读 2021-10-24 11:03:03
    在操作系统,将负责存取的管理信息的部分称为文件系统。文件是在逻辑上具有完整意义的一组相关信息的有序集合,每个文件都有一个文件名。文件管理支持文件的存储、检索和修改等操作以及文件的保护功能。操作系统...
  • 更改windows pagefile 文件到其他盘

    千次阅读 2020-06-04 17:33:27
    pagefile 分页文件是硬盘上的一个区域,Windows 将其作为随机存取存储器 (RAM) 使用,它有时也叫做“虚拟内存”。默认情况下,Windows 将该文件Windows 系统文件存储在同一分区上。通过将此文件移到另一不同分区...
  • 浅谈文件的逻辑结构

    千次阅读 2020-11-24 11:04:34
    文件视为有序的字符集合,其内部不再信息进行组织划分,是依次的一串字符流构成的文件文件没有结构,由一串字符流构成。文件的长度以字节为单位,可以把流式文件看做记录式文件的一个特例:一个记录仅有一个...
  • 为了防止文件共享可能会导致文件被...其中,口令保护和加密保护是为了防止用户文件被他人存取或窃取,而访问控制则用于控制用户对文件的访问方式。 访问类型 对文件的保护可以从限制对文件的访问类型出发。可...
  • 操作系统总结之文件管理

    万次阅读 多人点赞 2018-07-07 16:11:32
    文件管理,由于系统的内存有限并且不能长期保存,故平时总是把它们以文件的形式存放在外存,需要时再将它们调入内存。如何高效的对文件进行管理是操作系统实现的目标。 二:文件文件系统 ...
  • visual basic2005文件IO与数据存取秘诀第三章(探讨WINDOWS FORMS数据绑定的所有范例文件

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 97,664
精华内容 39,065
关键字:

windows中对文件的存取方式