领先源自专业知识提升价值文件管理ADD:南昌国家高新技术开发区高新一路69号博微大楼邮编:330096TEL:0791-88112277934248481/2/3/4/5南昌国家高新技术开发区高新一路69号博微大楼邮编:330096TEL:0791-88112277934248481/2/3/4/5一种能够存储大量数据的设备。读写速度比内存慢,但容量要比内存大得多。硬盘是外部存储器的一种,硬盘所具有的的特性外部存储器都有。外部存储器除了硬盘之外还包括U盘、软盘等。领先源自专业知识提升价值磁盘的工作原理Page4硬盘内存CPU数据是从硬盘中读出,写入到内存中,当CPU需要数据的时候,会从内存中读取,当数据修改完毕后,又从内存中写回到硬盘中。领先源自专业知识提升价值为什么不直接将硬盘中的数据直接读入CPU?Page5磁盘的工作原理原因:硬盘的速度没有内存快领先源自专业知识提升价值硬盘分区是在硬盘上划分几个逻辑区域,这些逻辑区域就代表一个虚拟的硬盘,这样使得一个物理硬盘可以划分成多个硬盘使用。分区作用:方便管理文件,不同类型的文件放到不同的分区中,避免因部分数据损坏导致整个磁盘都无法正常工作。硬盘结构---硬盘分区C:D:E:领先源自专业知识提升价值文件管理ADD:南昌国家高新技术开发区高新一路69号博微大楼邮编:330096TEL:0791-88112277934248481/2/3/4/5硬盘的基本知识文件系统文件夹管理文件管理领先源自专业知识提升价值文件、文件夹1份完整的数据就是文件。C:D:E:10101111000111110000在内存中是二进制数据在系统中显示的就是一个文件在硬盘中是1段数据领先源自专业知识提升价值文件、文件夹什么是文件:文件是一组相关信息的集合,任何程序和数据都是一文件的形式存放在计算机的外存储器上,通常存放在磁盘上.在计算机中,文本文档,电子表格,数字图片,歌曲等都属于文件.任何一个文件都具备文件名,文件名是存取文件的依据.文件格式:txtbmppptdoc等Page9领先源自专业知识提升价值文件、文件夹如果所有文件都放在一起,那么要查阅起来就非常不方便,所以就定义了文件夹,用于分类管理文件。领先源自专业知识提升价值什么是文件夹:文件夹是在磁盘上组织程序和文档的一种手段,它既可以包含文件,也可以包含其他文件夹,文件夹中包含的文件夹通常称为”子文件夹”.windows采用了树形结构已文件夹的形式组织和管理文件.Page11文件夹文件、文件夹领先源自专业知识提升价值文件、文件夹领先源自专业知识提升价值文件系统这个文件到底放到哪?难道要把整个硬盘翻个遍才能找到吗????领先源自专业知识提升价值文件系统如何到图书馆里去借书?首先要了解图书馆的结构,知道去几楼哪个房间去找如何找到一个文件在磁盘中的位置?1.要规划好数据的存放位置.(文件系统)2.操作系统要了解数据的存放位置?领先源自专业知识提升价值文件系统以FAT32文件格式读取某个文件为例:1.首先走到图书馆的咨询区。2.询问xxxx在图书馆的哪层哪个房间内。3.走到那个房间查找xxxx。以去图书馆找书为例:1.首先找到FAT区。2.在FAT区中查找这个文件的起始位置在哪个扇区的哪个簇中。3.定位到这个簇,读取这个文件。领先源自专业知识提升价值操作系统对磁盘的管理Page16操作系统面向硬盘写磁盘数据格式化磁盘、磁盘分区、磁盘碎片整理、磁盘数据修复读磁盘数据面向文件系统文件夹管理添加、删除文件和文件夹、搜索文件、文件夹文件管理文件索引管理领先源自专业知识提升价值文件管理ADD:南昌国家高新技术开发区高新一路69号博微大楼邮编:330096TEL:0791-88112277934248481/2/3/4/5()创建文件夹RemoveDirectory()删除文件夹GetCurrentDirectory()获得当前目录路径SetCurrentDirectory()设置当前目录路径领先源自专业知识提升价值操作系统对文件夹操作的API2.如何使用WindowsAPI?3.什么是当前目录?1.什么是API?领先源自专业知识提升价值什么是APIPage20还记得什么是第三方库么?API就是用于调用Window操作系统提供的功能的第三方库领先源自专业知识提升价值如何引入WindowAPIPage21引入windowsAPI头文件我们只需要在使用API前包含windows.h就可以了领先源自专业知识提升价值什么是当前目录Page22相对路径就是指有这个文件所在的路径引起的跟其他文件或文件夹的路径关系,使用相对路径可以为我们带来很多的便利.如下图所示,windows目录下内容就是相对root的目录,只包含一级关系领先源自专业知识提升价值什么是当前目录Page23请问上面那段代码会将TestDir文件夹生成到哪?放在应用程序所在的目录当前目录就是用于从相对路径合成绝对路径时用到的路径绝对路径=当前目录+相对路径默认的当前目录是应用程序所在的目录领先源自专业知识提升价值什么是短路径Windows对长路径名文件作了限制,最多允许260个字符长度的路径事实上所有的WindowsAPI都要遵循这个限制,操作系统不允许超过260个字符文件的全路径.实际应用中这种260个字符的全路径在实际开发中很不方便,又是我们只需要文件的名字,而不需要文件的全路径.只给出文件的名字,而不需要文件的全路径,我们就叫做文件的短路径.Page24领先源自专业知识提升价值文件管理ADD:南昌国家高新技术开发区高新一路69号博微大楼邮编:330096TEL:0791-88112277934248481/2/3/4/5根据传入的文件路径打开或创建文件,设置文件打开的模式,返回文件句柄。ReadFile读取打开文件的数据到缓冲区,从文件指针位置开始读取,读取的字节数需指定。WriteFile写入缓冲区的数据到打开文件,从文件指针位置开始写入,写入的字节数需指定。CloseHandle关闭一个打开的文件句柄。DeleteFile删除一个存在的文件。领先源自专业知识提升价值文件操作API函数2.什么是文件指针?3.什么是缓存区?1.什么是句柄?领先源自专业知识提升价值什么是句柄句柄就是用于操作文件的”钥匙”。当使用CreateFile打开文件时,操作系统会提供给以一把“钥匙”用于操作文件。当不使用文件了,需要调用CloseHandle把”钥匙”归还给操作系统。领先源自专业知识提升价值什么是文件指针C:\abc.txt文件指针1.当打开文件后,会有一个标记位指向文件内容的某个位置。文件的读写都是从这个位置开始的。默认的打开一个文件时,该指针指向文件起始位置。abcdefghiC:\abc.txt文件指针abcdefghi123领先源自专业知识提升价值什么是缓存区存放数据的内存就是缓存区。缓存区溢出:1.当读取文件时,准备的内存不够,就会造成溢出。2.当写文件的时候,写入了超过缓存区长度的数据。领先源自专业知识提升价值CreateFile介绍lpFileName:文件全路径dwDesireAccess文件访问权限dwShareMode文件访问共享模式lpSecurityAttributes安全描述符,一般不用,默认为NULLdwCreationDisposition打开文件或者文件不存在时的动作dwFlagsAndAttributes创建文件时的给文件设置的属性hTemplateFile临时文件句柄,用于属性访问。领先源自专业知识提升价值dwDesireAccessdwDesireAccess文件访问权限:GENERIC_WRITE:一般写权限,当设置了这个权限后,可以对文件进行修改属性、修改数据、追加数据GENERIC_READ:一般读权限,当设置了这个权限后,可以对文件进行读取属性、读取数据1.可单独使用2个标记CreateFile(LC:\\abc.txt,GENERIC_READ,…CreateFile(LC:\\abc.txt,GENERIC_WRITE,…2.可以通过安位或的形式同时使用读写权限。CreateFile(LC:\\abc.txt,GENERIC_READ|GENERIC_WRITE,…领先源自专业知识提升价值dwShareModedwShareMode文件共享模式:•FILE_SHARE_DELETE:共享删除:当打开文件后,允许其他程序同时对其进行删除操作•FILE_SHARE_READ:共享读:当打开文件后,允许其他程序同时对文件进行读取操作标记位可以单独使用,也可以通过安位或的形式一起使用。•FILE_SHARE_WRITE:共享写:当打开文件后,允许其他程序同时对文件进行写入操作领先源自专业知识提升价值dwCreationDispositionCREATE_ALWAYS创建新的文件,如果文件存在,则打开失败,CreateFile返回INVALID_HANDLE_VALUECREATE_NEW不管文件存不存在,都创建新的文件,如果存在文件会将原文件覆盖。OPEN_ALWAYS如果文件存在,则打开,如果不存在,则检查CREATE_ALWAYS是否存在,如果存在,则创建文件。OPEN_EXISTING如果文件存在,则打开文件,如果不存在,CreateFile返回INVALID_HANDLE_VALUEPage34dwCreationDisposition:打开文件或者文件不存在时的策略领先源自专业知识提升价值dwFlagsAndAttributesFILE_ATTRIBUTE_NORMAL什么属性都不带FILE_ATTRIBUTE_HIDDEN带隐藏属性FILE_ATTRIBUTE_READONLY带只读属性Page35dwFlagsAndAttributes:创建文件时的给文件设置的属性,如果只是打开文件,那么这个标记位不起效。领先源自专业知识提升价值内存管理ADD:南昌国家高新技术开发区高新一路69号博微大楼邮编:330096TEL:0791-88112277934248481/2/3/4/5中的内存知识Window下的内存知识内存操作的高级功能领先源自专业知识提升价值内存管理ADD:南昌国家高新技术开发区高新一路69号博微大楼邮编:330096TEL:0791-88112277934248481/2/3/4/5中的内存知识Window下的内存知识领先源自专业知识提升价值什么是内存内存也是存放数据的载体,它不同于磁盘,存放在磁盘中的数据是永久的,而存放在内存中的数据,在断电时数据立马消失.内存中存放的是二进制数据。内存的存储单元是Byte。1Byte能够存储8位的二进制数据。Page3810101000168领先源自专业知识提升价值Page39Pa