CN101576908A - 一种通过文件名获取文件句柄的方法及系统 - Google Patents

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

Info

Publication number
CN101576908A
CN101576908A CNA2009100798260A CN200910079826A CN101576908A CN 101576908 A CN101576908 A CN 101576908A CN A2009100798260 A CNA2009100798260 A CN A2009100798260A CN 200910079826 A CN200910079826 A CN 200910079826A CN 101576908 A CN101576908 A CN 101576908A
Authority
CN
China
Prior art keywords
file
handle
filename
obtains
parenthandle
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CNA2009100798260A
Other languages
English (en)
Inventor
孙蕾
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Vimicro Corp
Original Assignee
Vimicro Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Vimicro Corp filed Critical Vimicro Corp
Priority to CNA2009100798260A priority Critical patent/CN101576908A/zh
Publication of CN101576908A publication Critical patent/CN101576908A/zh
Pending legal-status Critical Current

Links

Images

Landscapes

  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

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

Description

一种通过文件名获取文件句柄的方法及系统
技术领域
本发明属于计算机信息处理中的数字图像打印技术领域,具体涉及一种通过文件名获取文件句柄的方法及系统。
背景技术
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方法提高了我们的设备的兼容性。
本发明所述的方法和系统并不限于具体实施方式中所述的实施例,本领域技术人员根据本发明的技术方案得出其他的实施方式,同样属于本发明的技术创新范围。

Claims (8)

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。
CNA2009100798260A 2009-03-12 2009-03-12 一种通过文件名获取文件句柄的方法及系统 Pending CN101576908A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CNA2009100798260A CN101576908A (zh) 2009-03-12 2009-03-12 一种通过文件名获取文件句柄的方法及系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CNA2009100798260A CN101576908A (zh) 2009-03-12 2009-03-12 一种通过文件名获取文件句柄的方法及系统

Publications (1)

Publication Number Publication Date
CN101576908A true CN101576908A (zh) 2009-11-11

Family

ID=41271841

Family Applications (1)

Application Number Title Priority Date Filing Date
CNA2009100798260A Pending CN101576908A (zh) 2009-03-12 2009-03-12 一种通过文件名获取文件句柄的方法及系统

Country Status (1)

Country Link
CN (1) CN101576908A (zh)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104331299A (zh) * 2013-07-22 2015-02-04 腾讯科技(深圳)有限公司 基于php环境的磁盘的文件加载方法和装置
CN105095330A (zh) * 2014-12-01 2015-11-25 哈尔滨安天科技股份有限公司 一种基于压缩包内容的文件格式识别方法及系统
CN105808550A (zh) * 2014-12-30 2016-07-27 迈普通信技术股份有限公司 一种访问文件的方法及装置
CN107704464A (zh) * 2016-08-08 2018-02-16 北京国双科技有限公司 解析静态资源的路径的方法及装置

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101044447A (zh) * 2004-10-21 2007-09-26 佳能株式会社 图像供给装置、该装置的控制方法以及打印系统
CN101295234A (zh) * 2008-06-26 2008-10-29 北京中星微电子有限公司 一种PictBridge标准下的句柄处理方法及装置
CN100446024C (zh) * 2007-01-26 2008-12-24 北京飞天诚信科技有限公司 一种电子文件保护方法及系统

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101044447A (zh) * 2004-10-21 2007-09-26 佳能株式会社 图像供给装置、该装置的控制方法以及打印系统
CN100446024C (zh) * 2007-01-26 2008-12-24 北京飞天诚信科技有限公司 一种电子文件保护方法及系统
CN101295234A (zh) * 2008-06-26 2008-10-29 北京中星微电子有限公司 一种PictBridge标准下的句柄处理方法及装置

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104331299A (zh) * 2013-07-22 2015-02-04 腾讯科技(深圳)有限公司 基于php环境的磁盘的文件加载方法和装置
CN105095330A (zh) * 2014-12-01 2015-11-25 哈尔滨安天科技股份有限公司 一种基于压缩包内容的文件格式识别方法及系统
CN105808550A (zh) * 2014-12-30 2016-07-27 迈普通信技术股份有限公司 一种访问文件的方法及装置
CN105808550B (zh) * 2014-12-30 2019-02-15 迈普通信技术股份有限公司 一种访问文件的方法及装置
CN107704464A (zh) * 2016-08-08 2018-02-16 北京国双科技有限公司 解析静态资源的路径的方法及装置
CN107704464B (zh) * 2016-08-08 2021-05-07 北京国双科技有限公司 解析静态资源的路径的方法及装置

Similar Documents

Publication Publication Date Title
CN1215415C (zh) 文件管理方法和存储信息记录重放装置
CN100461097C (zh) 安装并行驱动程序的方法和设备
CN101984410B (zh) 软件安装包的生成、卸载方法及装置
US8817319B2 (en) System and method for direct rendering of a document to an electronic book device in device-supported format
US20050185949A1 (en) Recording medium and program
US10015326B2 (en) Image forming apparatus, automatic installation method for efficiently installing an image forming apparatus, and storage medium
CA2316897A1 (en) Apparatus and method for digital filing
CN101576908A (zh) 一种通过文件名获取文件句柄的方法及系统
CN102904960B (zh) 一种基于rss的信息同步系统及方法
JP2006163842A (ja) 検索システム、情報処理装置及びその制御方法、プログラム
CN103701817B (zh) 一种配置文件的生成方法及装置
CN1215414C (zh) 文件管理方法以及内容记录/重放装置
CN1277210C (zh) 一种文件同步的方法
CN104394305A (zh) 一种在安卓系统中支持外部移动摄像头和移动设备上内置摄像头的兼容方法
CN103246729A (zh) 一种处理安卓移动端的多媒体文件的方法和系统
CN102393848A (zh) 获取数据终端设备识别信息的方法和系统
CN103577554A (zh) 触发Android设备多媒体数据库扫描的方法及装置
CN103907103B (zh) 外部设备扩展方法及外部设备
CN101488974A (zh) 一种p2p资源提供方法、系统及p2p目录服务器
CN103136264A (zh) 附件查询方法和用户终端
US8675643B2 (en) IP telephone system and iP telephone terminal used therein
CN105302503A (zh) 信息处理装置及其控制方法
EP2359329A2 (en) Method and apparatus for reproducing content by using metadata
CN1218246C (zh) 一种智能网业务管理接入点自动升级的方法
US10038813B2 (en) Information processing system and information processing method

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C12 Rejection of a patent application after its publication
RJ01 Rejection of invention patent application after publication

Application publication date: 20091111