一种文件操作方法、装置、电子设备以及存储介质与流程

文档序号:37267463发布日期:2024-03-12 20:52阅读:17来源:国知局
一种文件操作方法、装置、电子设备以及存储介质与流程

本公开涉及计算机,具体而言,涉及一种文件操作方法、装置、电子设备以及存储介质。


背景技术:

1、随着计算机技术的高速发展,计算机设备中的程序和数据越来越多,而计算机设备的内存容量有限且不能长久保存数据,于是文件系统应运而生,它支持了代码开发、图像编辑、程序运行等重要的功能。

2、目前,文件系统的类型很多,使用的范围也相当广泛,但在浏览器环境下,对文件进行操作时,仍存在许多问题,例如,文件只支持单进程操作,其他进程读取相同文件时,需要对文件进行复制并传递,产生大量的内存消耗和不必要的系统开销。


技术实现思路

1、本公开实施例至少提供一种文件操作方法、装置、电子设备以及存储介质。

2、第一方面,本公开实施例提供了一种文件操作方法,包括:

3、响应于浏览器中目标进程的文件操作请求,从所述目标进程的多个文件操作实例中确定与所述文件操作请求指示的目标操作类型匹配的目标实例;所述目标操作类型包括写操作及读操作中的至少一种;

4、利用所述目标实例对第一目标共享内存下的目标文件进行与所述目标操作类型对应的文件操作;所述第一目标共享内存是所述浏览器在进程初次使用文件系统时为进程创建的,用于存储所述浏览器的各个进程使用的文件;

5、在所述文件操作完成之后,若所述文件操作为写操作,则发送针对所述目标文件的变更通知,所述变更通知用于指示调用所述目标文件的其他进程通过对应的文件操作实例读取更新后的所述目标文件。

6、一种可选的实施方式中,所述第一目标共享内存包括文件管理信息区域和文件内容信息区域;所述利用所述目标实例对第一目标共享内存下的目标文件进行与所述目标操作类型对应的文件操作,包括:

7、利用所述目标实例,从所述文件管理信息区域中查找所述目标文件在所述文件内容信息区域对应的目标地址;

8、访问所述目标地址,对所述目标文件进行与所述目标操作类型对应的文件操作。

9、一种可选的实施方式中,所述文件管理信息区域包括共享内存状态区域、文件属性信息区域以及文件地址信息区域;

10、所述利用所述目标实例,从所述文件管理信息区域中查找所述目标文件在所述文件内容信息区域对应的目标地址,包括:

11、利用所述目标实例,从所述共享内存状态信息中读取所述文件属性信息区域及所述文件地址信息区域对应的内存地址;

12、利用读取的文件属性信息区域的内存地址,访问所述文件属性信息区域,从所述文件属性信息区域中读取所述目标文件对应的文件属性信息;

13、利用读取的文件地址信息区域的内存地址,访问所述文件地址信息区域,从所述文件地址信息区域中读取与所述目标文件对应的文件属性信息匹配内存地址,并将其作为所述目标文件在所述文件内容信息区域对应的目标地址。

14、一种可选的实施方式中,所述若所述文件操作为写操作,则发送针对所述目标文件的变更通知,包括:

15、若所述文件操作为写操作,则生成携带有所述目标文件的标识信息的变更通知,以广播形式将所述变更通知发送至所述其他进程;或者,

16、若所述文件操作为写操作,从所述其他进程中确定与所述目标文件对应的待通知进程,并将所述变更通知发送至所述待通知进程。

17、一种可选的实施方式中,所述方法还包括:

18、在所述目标进程首次对所述目标文件进行操作时,生成所述目标进程与所述目标文件的映射关系,并将所述映射关系作为所述目标进程对应的文件描述符存储于第二目标共享内存中的与所述目标进程对应的文件调用区域中;所述文件描述符用于确定目标进程所使用的文件;

19、在建立所述目标进程的子进程的过程中,将所述目标进程对应的文件调用区域作为所述子进程对应的文件调用区域。

20、一种可选的实施方式中,所述方法还包括:

21、在进行所述文件操作的过程中,若所述文件操作为写操作,则对所述目标文件添加写入锁;

22、在所述文件操作完成之后,将所述目标文件的写入锁移除。

23、第二方面,本公开实施例还提供一种文件操作装置,包括:

24、确定模块,用于响应于浏览器中目标进程的文件操作请求,从所述目标进程的多个文件操作实例中确定与所述文件操作请求指示的目标操作类型匹配的目标实例;所述目标操作类型包括写操作及读操作中的至少一种;

25、操作模块,用于利用所述目标实例对第一目标共享内存下的目标文件进行与所述目标操作类型对应的文件操作;所述第一目标共享内存是所述浏览器在进程初次使用文件系统时为进程创建的,用于存储所述浏览器的各个进程使用的文件;

26、通知模块,用于在所述文件操作完成之后,若所述文件操作为写操作,则发送针对所述目标文件的变更通知,以使除所述目标进程之外使用所述目标文件的其他进程根据需求通过所述其他进程对应的文件操作实例读取更新后的所述目标文件。

27、一种可选的实施方式中,所述第一目标共享内存包括文件管理信息区域和文件内容信息区域;所述操作模块在利用所述目标实例对第一目标共享内存下的目标文件进行与所述目标操作类型对应的文件操作时,用于:

28、利用所述目标实例,从所述文件管理信息区域中查找所述目标文件在所述文件内容信息区域对应的目标地址;

29、访问所述目标地址,对所述目标文件进行与所述目标操作类型对应的文件操作。

30、一种可选的实施方式中,所述文件管理信息区域包括共享内存状态区域、文件属性信息区域以及文件地址信息区域;

31、所述操作模块在利用所述目标实例,从所述文件管理信息区域中查找所述目标文件在所述文件内容信息区域对应的目标地址时,用于:

32、利用所述目标实例,从所述共享内存状态信息中读取所述文件属性信息区域及所述文件地址信息区域对应的内存地址;

33、利用读取的文件属性信息区域的内存地址,访问所述文件属性信息区域,从所述文件属性信息区域中读取所述目标文件对应的文件属性信息;

34、利用读取的文件地址信息区域的内存地址,访问所述文件地址信息区域,从所述文件地址信息区域中读取与所述目标文件对应的文件属性信息匹配内存地址,并将其作为所述目标文件在所述文件内容信息区域对应的目标地址。

35、一种可能的实施方式中,所述通知模块具体用于:

36、若所述文件操作为写操作,则生成携带有所述目标文件的标识信息的变更通知,以广播形式将所述变更通知发送至所述其他进程;或者,

37、若所述文件操作为写操作,从所述其他进程中确定与所述目标文件对应的待通知进程,并将所述变更通知发送至所述待通知进程。

38、一种可能的实施方式中,所述装置还包括映射模块,用于:

39、在所述目标进程首次对所述目标文件进行操作时,生成所述目标进程与所述目标文件的映射关系,并将所述映射关系作为所述目标进程对应的文件描述符存储于第二目标共享内存中的与所述目标进程对应的文件调用区域中;所述文件描述符用于确定目标进程所使用的文件;

40、在建立所述目标进程的子进程的过程中,将所述目标进程对应的文件调用区域作为所述子进程对应的文件调用区域。

41、一种可能的实施方式中,所述装置还包括写入锁模块,用于:

42、在进行所述文件操作的过程中,若所述文件操作为写操作,则对所述目标文件添加写入锁;

43、在所述文件操作完成之后,将所述目标文件的写入锁移除。

44、第三方面,本公开实施例还提供一种电子设备,包括:处理器、存储器和总线,所述存储器存储有所述处理器可执行的机器可读指令,当电子设备运行时,所述处理器与所述存储器之间通过总线通信,所述机器可读指令被所述处理器执行时执行上述第一方面,或第一方面中任一种可能的实施方式中的步骤。

45、第四方面,本公开实施例还提供一种计算机可读存储介质,该计算机可读存储介质上存储有计算机程序,该计算机程序被处理器运行时执行上述第一方面,或第一方面中任一种可能的实施方式中的步骤。

46、本公开实施例提供的文件操作方法、装置、电子设备以及存储介质,该方法响应于浏览器中目标进程的文件操作请求,从所述目标进程的多个文件操作实例中确定与所述文件操作请求指示的目标操作类型匹配的目标实例;所述目标操作类型包括写操作及读操作中的至少一种;利用所述目标实例对第一目标共享内存下的目标文件进行与所述目标操作类型对应的文件操作;所述第一目标共享内存是所述浏览器在进程初次使用文件系统时为进程创建的,用于存储所述浏览器的各个进程使用的文件;在所述文件操作完成之后,若所述文件操作为写操作,则发送针对所述目标文件的变更通知,所述变更通知用于指示调用所述目标文件的其他进程通过对应的文件操作实例读取更新后的所述目标文件。

47、本公开实施例通过将文件存储于第一目标共享内存中,使得浏览器中的各个独立进程能够访问同一个目标文件,且当其中的目标进程对目标文件进行写操作后,只需要发送变更通知,即可使其他需要的进程更新目标文件,不需要发送目标文件本身,变更通知占用的存储空间远远小于目标文件本身,使不同进程之间传输数据的消耗大大降低;同时,进程对文件进行操作时使用各自的文件操作实例,能够并行执行,提高了数据操作的效率。

48、为使本公开的上述目的、特征和优点能更明显易懂,下文特举较佳实施例,并配合所附附图,作详细说明如下。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1