一种通过文件名获取文件句柄的方法及系统.pdf

上传人:111****112 文档编号:965611 上传时间:2018-03-21 格式:PDF 页数:15 大小:603.11KB
返回 下载 相关 举报
摘要
申请专利号:

CN200910079826.0

申请日:

2009.03.12

公开号:

CN101576908A

公开日:

2009.11.11

当前法律状态:

驳回

有效性:

无权

法律详情:

发明专利申请公布后的驳回IPC(主分类):G06F 17/30申请公布日:20091111|||实质审查的生效IPC(主分类):G06F 17/30申请日:20090312|||公开

IPC分类号:

G06F17/30

主分类号:

G06F17/30

申请人:

北京中星微电子有限公司

发明人:

孙 蕾

地址:

100083北京市海淀区学院路35号世宁大厦15层

优先权:

专利代理机构:

北京天悦专利代理事务所

代理人:

田 明;任晓航

PDF下载: PDF下载
内容摘要

本发明涉及一种通过文件名获取文件句柄的方法及系统。现有的通过文件名获取文件句柄(handle)的方法,多是固定支持采用动态或静态一种分配handle的模式,并且多是针对本身的文件系统实现的,有一定的局限性,兼容性方面存在问题。本发明为用户提供一个兼容性较强的尽可能通用的通过文件名获取文件handle的方法及系统,便于用户移植和应用。

权利要求书

1.  一种通过文件名获取文件句柄的方法,包括以下步骤:
步骤一,判断文件句柄handle的分配方式是否是动态分配文件handle,如果是则转入步骤二,否则转入步骤三;
步骤二,直接为文件分配handle,解析文件名得到文件格式类型,记录文件对应的formatcode,获取文件handle,转入步骤五;
步骤三,采取静态的分配方式先分配文件handle,直到分配完毕;
步骤四,对文件handle进行匹配,解析文件名得到文件格式类型,记录文件对应的formatcode,获取文件handle;
步骤五,返回获取的文件handle,处理结束。

2.
  如权利要求1所述的一种通过文件名获取文件句柄的方法,其特征是,步骤三中,采取静态的分配方式分配文件handle的方法包括以下步骤:
1)在磁盘的当前目录下findfirst,即查找当前目录下第一个文件或文件夹,第一次进入时默认为磁盘的根目录;
2)如果没有找到文件,则说明该路径下没有任何文件,则直接返回;如果找到了文件,则跳至步骤3);
3)判断找到的文件是否是文件夹,如果是文件夹,转到步骤4),否则,跳至步骤5);
4)为找到的文件夹分配handle,并将该handle保存下来,作为该文件夹下所有文件和文件夹的parenthandle,然后进入该文件夹,即当前目录为该文件夹,跳至步骤1);
5)为找到的文件分配handle,并根据文件名记录其对应的formatcode,记录该文件的parenthandle,跳至步骤6);
6)查找当前目录下的下一个文件或文件夹,如果找到了,则跳至步骤3),否则跳至步骤7);
7)判断当前目录是否在子目录中,如果当前目录没有在子目录中,说明在根目录下,则表明分配完毕,直接返回,否则跳至步骤8);
8)返回上一级目录,查找上一级目录下的下一个文件或文件夹,跳至步骤2)。

3.
  如权利要求2所述的一种通过文件名获取文件句柄的方法,其特征是,步骤四中,对文件handle进行匹配的方法包括以下步骤:
(1)判断文件名是否包含绝对路径,如果是则转入步骤(2),否则转入步骤(7);
(2)解析包含绝对路径的文件名;
(3)获取第i级路径名,i初始值为1;
(4)匹配handle分配表中的路径名和parenthandle,得到该路径名对应的handle,该路径名对应的handle即为下一级路径名的parenthandle;
(5)偏移存放包含绝对路径的文件名的字符串指针,获取文件名或下一级路径名;
(6)判断是否文件名,如果是则匹配handle分配表中的文件名和parenthandle,得到与该文件名对应的handle,处理结束;否则i=i+1,跳至步骤(3);
(7)解析包含相对路径的文件名,得到与该文件名对应的handle。

4.
  如权利要求3所述的一种通过文件名获取文件句柄的方法,其特征是:步骤(7)中,首先进入根目录,获取根目录的handle信息,然后进入下一级目录,获取其parenthandle与其上一级目录的handle对应的下一级目录的handle信息,直到获取该文件所在的目录的handle信息,匹配handle分配表中的文件名和parenthandle,得到与该文件名对应的handle,返回获取的文件handle。

5.
  如权利要求1、2、3或4所述的一种通过文件名获取文件句柄的方法,其特征是:在解析文件名时,采用的是通过将获取的文件名或文件夹名处理为字符串然后再进行固定长度字符串比较的方法。

6.
  如权利要求1、2、3或4所述的一种通过文件名获取文件句柄的方法,其特征是:在匹配路径和文件名时,通过路径或文件名和其对应的parenthandle两项标准进行匹配。

7.
  如权利要求5所述的一种通过文件名获取文件句柄的方法,其特征是:在匹配文件夹和文件名时,通过文件夹或文件名和其对应的parenthandle两项标准进行匹配。

8.
  一种通过文件名获取文件句柄的系统,包括以下装置:
分配方式判断模块,用于判断系统中文件handle的分配方式,如果是动态分配的方式,则转入动态分配模块处理,否则转入静态分配模块处理;
动态分配模块,用于为文件动态分配handle,解析文件名得到文件格式类型,记录文件对应的formatcode,直接返回获取的文件handle;
静态分配模块,用于以静态的方式分配文件handle,即在系统初始化时就将磁盘上所有的文件和文件夹进行handle分配;
静态匹配模块,用于对文件handle进行匹配,解析文件名得到文件格式类型,记录文件对应的formatcode,返回获取的文件handle。

说明书

一种通过文件名获取文件句柄的方法及系统
技术领域
本发明属于计算机信息处理中的数字图像打印技术领域,具体涉及一种通过文件名获取文件句柄的方法及系统。
背景技术
PictBridge是由日本照相机影像机器工业协会即CIPA(Camera &Imaging Products Association)设立的一项行业标准,其功能为不使用电脑可直接打印数字图像。在PictBridge中打印输出(host)端与相机或手机(device)端之间的文件传输不是以文件名为主要依据,而是以文件handle(句柄)作为每个文件的标识,所述的文件handle的是与文件名一一对应的文件索引或编号。然而,在现有的device端的文件系统中,文件是以不同的文件名存在的,并没有对应的文件handle,所以在用户选择了一个或多个需要打印的文件时,需要通过文件名获取对应的handle。
现有的通过文件名获取文件handle的方法,多是固定支持采用动态或静态一种分配handle的模式,并且多是针对本身的文件系统实现的,有一定的局限性,兼容性方面也存在问题。
具体来说,静态分配是指在系统初始化时就将磁盘上所有的文件和文件夹进行handle分配,这样在使用文件handle进行打印时,就直接进行搜索匹配,缺点是不够灵活,当磁盘内容发生变化时,需要重新分配handle。
动态分配是指在系统初始化时并不对磁盘上所有的文件和文件夹进行handle的分配,而是在用户选择了需要进行打印的文件时,分配文件handle,然后进行打印,这种方式是相对灵活并且效率比较高的方式,缺点是用户需要以绝对路径的文件名进行文件handle的分配,如果以相对路径进行访问的话有可能出现重复分配的情况。
发明内容
针对现有技术中存在的缺陷,本发明的目的是提供一种通过文件名获取文件句柄的方法及系统。该方法及系统能够在PictBridge模块中为用户提供一个兼容性强、通用的通过文件名获取文件handle的方法,便于用户移植和应用。
为达到以上目的,本发明采用的技术方案是:一种通过文件名获取文件句柄的方法,包括以下步骤:
步骤一,判断文件handle(句柄)的分配方式是否是动态分配文件handle,如果是则转入步骤二,否则转入步骤三;
步骤二,直接为文件分配handle,解析文件名得到文件格式类型,记录文件对应的formatcode(格式代码),获取文件handle,转入步骤五;
步骤三,采取静态的分配方式先分配文件handle,直到分配完毕;
步骤四,对文件handle进行匹配,解析文件名得到文件格式类型,记录文件对应的formatcode,获取文件handle;
步骤五,返回获取的文件handle,处理结束。
进一步,步骤三中,所述采取静态的分配方式分配文件handle的方法包括以下步骤:
1)在磁盘的当前目录下findfirst,即查找当前目录下第一个文件或文件夹,第一次进入时默认为磁盘的根目录;
2)如果没有找到文件,则说明该路径下没有任何文件,则直接返回;如果找到了文件,则跳至步骤3);
3)判断找到的文件是否是文件夹,如果是文件夹,转到步骤4),否则,跳至步骤5);
4)为找到的文件夹分配handle,并将该handle保存下来,作为该文件夹下所有文件和文件夹的parenthandle(父句柄),然后进入该文件夹,即当前目录为该文件夹,跳至步骤1);
5)为找到的文件分配handle,并根据文件名记录其对应的formatcode,记录该文件的parenthandle,跳至步骤6);
6)查找当前目录下的下一个文件或文件夹,如果找到了,则跳至步骤3),否则跳至步骤7);
7)判断当前目录是否在子目录中,如果当前目录没有在子目录中,说明在根目录下,则表明分配完毕,直接返回,否则跳至步骤8);
8)返回上一级目录,查找上一级目录下的下一个文件或文件夹,跳至步骤2)。
更进一步,步骤四中,对文件handle进行匹配的方法包括以下步骤:
(1)判断文件名是否包含绝对路径,如果是则转入步骤(2),否则转入步骤(7);
(2)解析包含绝对路径的文件名;
(3)获取第i级路径名,i初始值为1;
(4)匹配handle分配表中的路径名和parenthandle,得到该路径名对应的handle,该路径名对应的handle即为下一级路径名的parenthandle;
(5)偏移存放包含绝对路径的文件名的字符串指针,获取文件名或下一级路径名;
(6)判断是否文件名,如果是则匹配handle分配表中的文件名和parenthandle,得到与该文件名对应的handle,处理结束;否则i=i+1,跳至步骤(3);
(7)解析包含相对路径的文件名,得到与该文件名对应的handle。
再进一步,步骤(7)中,首先进入根目录,获取根目录的handle信息,然后进入下一级目录,获取其parenthandle与其上一级目录的handle对应的下一级目录的handle信息,直到获取该文件所在的目录的handle信息,匹配handle分配表中的文件名和parenthandle,得到与该文件名对应的handle,返回获取的文件handle。
进一步,在解析文件名时,采用的是通过将获取的文件名或文件夹名处理为字符串然后再进行固定长度字符串比较的方法。
进一步,在匹配路径和文件名时,通过路径或文件名和其对应的parenthandle两项标准进行匹配。
一种通过文件名获取文件句柄的系统,包括以下装置:
分配方式判断模块,用于判断系统中文件handle的分配方式,如果是动态分配的方式,则转入动态分配模块处理,否则转入静态分配模块处理;
动态分配模块,用于为文件动态分配handle,解析文件名得到文件格式类型,记录文件对应的formatcode,直接返回获取的文件handle;
静态分配模块,用于以静态的方式分配文件handle,即在系统初始化时就将磁盘上所有的文件和文件夹进行handle分配;
静态匹配模块,用于对文件handle进行匹配,解析文件名得到文件格式类型,记录文件对应的formatcode,返回获取的文件handle。
本发明的效果在于:采用本发明所述的方法及系统,可以在PictBridge模块中为用户提供一个兼容性强、通用的通过文件名获取文件handle的方法,便于用户移植和应用。
附图说明
图1是本发明所述方法的流程图;
图2是本发明所述方法中在静态分配的情况下分配handle流程图;
图3是本发明所述方法中在静态分配的情况下对文件handle进行匹配的流程图。
具体实施方式
下面结合附图和具体实施方式对本发明作进一步描述。
本发明中,如果系统以绝对路径或相对路径的方式访问文件的话,可以采取静态的分配方式,如果系统以绝对路径访问文件,则应该采用动态的分配方式,从而达到灵活快速的效果。
绝对路径:是指在访问文件时,以带有其整个路径的文件名为参数,例如:访问/a/b/c/d/123.c时,直接将/a/b/c/d/123.c作为文件名。
相对路径:是指在访问文件名时,通过进入每一级路经名,而后以单独的文件名作为参数,例如:访问/a/b/c/d/123.c时,首先进入a目录,然后进入b目录,再进入c目录,最后进入d目录,访问文件123.c。
本实施例中,一种通过文件名获取文件句柄的系统,包括以下装置:
分配方式判断模块,用于判断系统中文件handle的分配方式,如果是动态分配的方式,则转入动态分配模块处理,否则转入静态分配模块处理;
动态分配模块,用于为文件动态分配handle,解析文件名得到文件格式类型,记录文件对应的formatcode(对每种格式的图片文件,PTP协议中定义了相应的formatcode,即格式代码,如JPG,GIF等),直接返回获取的文件handle;
静态分配模块,用于以静态的方式分配文件handle,即在系统初始化时就将磁盘上所有的文件和文件夹进行handle分配;
静态匹配模块,用于对文件handle进行匹配,解析文件名得到文件格式类型,记录文件对应的formatcode,返回获取的文件handle。
如图1所示,一种通过文件名获取文件句柄的方法,包括以下步骤:
步骤一,判断文件句柄handle的分配方式是否是动态分配文件handle,如果是则转入步骤二,否则转入步骤三,S11;
步骤二,直接为文件分配handle,解析文件名得到文件格式类型,记录文件对应的formatcode(如JPG,GIF等),获取文件handle,S12;
步骤三,采取静态的分配方式先分配文件handle,直到分配完毕,S13;
步骤四,对文件handle进行匹配,解析文件名得到文件格式类型,记录文件对应的formatcode,S14,获取文件handle;
步骤五,返回获取的文件handle,处理结束,S15。
本实施例中,在解析文件名时,采用的是通过将获取的文件名或文件夹名处理为字符串然后再进行固定长度字符串比较的方法。在匹配路径和文件名时,通过路径或文件名和其对应的parenthandle两项标准进行匹配。
如图2所示,步骤三中,所述采取静态的分配方式分配文件handle的方法包括以下步骤:
1)在磁盘的当前目录下findfirst,即查找当前目录下第一个文件或文件夹,第一次进入时默认为磁盘的根目录,S21;
2)如果没有找到文件,则说明该路径下没有任何文件,则直接返回;如果找到了文件,则跳至步骤3),S22;
3)判断找到的文件是否是文件夹,如果是文件夹,转到步骤4),否则,跳至步骤5),S23;
4)为找到的文件夹分配handle,并将该handle保存下来,作为该文件夹下所有文件和文件夹的parent handle,然后进入该文件夹,即当前目录为该文件夹,跳至步骤1),S24;
5)为找到的文件分配handle,并根据文件名记录其对应的formatcode,记录该文件的parenthandle,跳至步骤6),S25;
6)Findnext,即查找当前目录下的下一个文件或文件夹,如果找到了,则跳至步骤3),否则跳至步骤7),S26;
7)判断当前目录是否在子目录中,如果当前目录没有在子目录中,说明在根目录下,则表明分配完毕,直接返回,否则跳至步骤8),S27;
8)返回上一级目录,findnext,即查找上一级目录下的下一个文件或文件夹,跳至步骤2),S28。
如图3所示,步骤四中,在静态分配的情况下对文件handle进行匹配的方法包括以下步骤:
(1)判断文件名是否包含绝对路径,如果是则转入步骤(2),否则转入步骤7),S31;
(2)解析包含绝对路径的文件名,S32,如:/a/b/c/d/123.jpg;
(3)获取第i级路径名,i初始值为1,第一次进入获取的路径名为a,i=2时获取的路径名为b,依次类推,S33;
(4)匹配handle分配表中的路径名和parenthandle,得到该路径名对应的handle,该路径名对应的handle即为下一级路径名的parenthandle(如:第一级路经名a对应的handle即为第二级路径名b的parenthandle,依次类推),S34;
(5)偏移存放包含绝对路径的文件名的字符串指针,获取文件名或下一级路径名,S35;
(6)判断字符串指针是否指向的为文件名,S36,如果是则匹配handle分配表中的文件名和parenthandle,得到与该文件名对应的handle,S38,处理结束;否则i=i+1,跳至步骤(3);
(7)解析包含相对路径的文件名,S371,进入根目录,获取根目录的handle信息,S372,然后进入下一级目录,获取其parenthandle与其上一级目录的handle对应的下一级目录的handle信息,直到获取该文件所在的目录的handle信息,S373,最后匹配handle分配表中的文件名和parenthandle,得到与该文件名对应的handle,S38;
例如:访问/a/b/c/123.c时,则首先进入a目录,获取a目录的handle信息;
然后进入b目录,再获取其parenthandle与a目录的handle对应的b目录的handle信息;
最后进入c目录,获取其parenthandle与b目录的handle对应的c目录的handle信息,访问其parenthandle与c目录的handle对应的文件123.c,匹配handle分配表中的文件名和parenthandle,得到与该文件名对应的handle,处理结束。
本发明介绍一种方法,用于通过文件名获取文件handle。在静态情况下可以通过文件的路径名纵深的逐级进行匹配,从而得到文件handle。本方法具有一定的通用性,可以支持在不同的文件系统中进行移植应用,并且支持动态和静态两种分配handle的模式,增强了模块的兼容性。
具体来说,本发明具有以下优点:
(1)一般情况下,通过文件名获取文件handle的方法多是固定支持采用动态或静态一种分配handle的模式,并且根据本身的文件系统只支持固定的文件名格式,兼容性不强。而本发明可以处理文件名为ASC II或Unicode两种格式的形式,兼容性比较强。
(2)本发明通过将获取的文件名或文件夹名处理为字符串然后再进行固定长度字符串比较的方法,避免了相近文件和文件夹名称引起的匹配错误问题。
(3)由于在不同的目录下可能有相同文件夹名或文件名存在,故本发明在匹配路径和文件名时,通过路径或文件名和其对应的parenthandle两项标准进行匹配,避免了这种情况下的匹配错误。
(4)本发明在实现PictBridge功能中,此种通过文件名获取文件handle方法提高了我们的设备的兼容性。
本发明所述的方法和系统并不限于具体实施方式中所述的实施例,本领域技术人员根据本发明的技术方案得出其他的实施方式,同样属于本发明的技术创新范围。

一种通过文件名获取文件句柄的方法及系统.pdf_第1页
第1页 / 共15页
一种通过文件名获取文件句柄的方法及系统.pdf_第2页
第2页 / 共15页
一种通过文件名获取文件句柄的方法及系统.pdf_第3页
第3页 / 共15页
点击查看更多>>
资源描述

《一种通过文件名获取文件句柄的方法及系统.pdf》由会员分享,可在线阅读,更多相关《一种通过文件名获取文件句柄的方法及系统.pdf(15页珍藏版)》请在专利查询网上搜索。

本发明涉及一种通过文件名获取文件句柄的方法及系统。现有的通过文件名获取文件句柄(handle)的方法,多是固定支持采用动态或静态一种分配handle的模式,并且多是针对本身的文件系统实现的,有一定的局限性,兼容性方面存在问题。本发明为用户提供一个兼容性较强的尽可能通用的通过文件名获取文件handle的方法及系统,便于用户移植和应用。 。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 物理 > 计算;推算;计数


copyright@ 2017-2020 zhuanlichaxun.net网站版权所有
经营许可证编号:粤ICP备2021068784号-1