JP2008040806A - ファイル処理装置、ファイル処理方法およびファイル処理プログラム - Google Patents
ファイル処理装置、ファイル処理方法およびファイル処理プログラム Download PDFInfo
- Publication number
- JP2008040806A JP2008040806A JP2006214475A JP2006214475A JP2008040806A JP 2008040806 A JP2008040806 A JP 2008040806A JP 2006214475 A JP2006214475 A JP 2006214475A JP 2006214475 A JP2006214475 A JP 2006214475A JP 2008040806 A JP2008040806 A JP 2008040806A
- Authority
- JP
- Japan
- Prior art keywords
- file
- temporary
- processing
- capacity
- temporary file
- 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
Links
Images
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
【課題】SEEK可能位置がファイルOPEN時のファイルサイズ内に制限されるファイルシステムに対しても、アルゴリズムの大幅な変更を伴わず、かつ処理効率のよい手法で追加部分へのSEEKを可能とする。
【解決手段】各処理のアルゴリズムに基づいて作成された変換テーブル44に基づいて処理後のファイル容量を計算し、この計算に基づいた容量の仮ファイルの作成をファイルシステム30に行わせるとともに、この仮ファイルの開き直しをファイルシステム30に行わせ、開き直し後の仮ファイルに処理の結果を書き込ませる。仮ファイルに余剰領域があればこの余剰領域の無効化を行っても良い。また書き込み中に仮ファイルの領域が不足したら領域追加を行う。
【選択図】図4
【解決手段】各処理のアルゴリズムに基づいて作成された変換テーブル44に基づいて処理後のファイル容量を計算し、この計算に基づいた容量の仮ファイルの作成をファイルシステム30に行わせるとともに、この仮ファイルの開き直しをファイルシステム30に行わせ、開き直し後の仮ファイルに処理の結果を書き込ませる。仮ファイルに余剰領域があればこの余剰領域の無効化を行っても良い。また書き込み中に仮ファイルの領域が不足したら領域追加を行う。
【選択図】図4
Description
本発明は、ファイル処理装置、ファイル処理方法およびファイル処理プログラムに関する。
従来、携帯電話機やPC(Personal Computer)などの情報処理を行う電気電子機器には、記憶媒体とこの記憶媒体に記録されているデータを管理するファイルシステムとを備える。ファイルシステムは、通常、OS(オペレーティングシステム)の持つ機能の一つとしてAPI(Application Program Interface)を介して提供され、ファイルのOPEN、READ、WRITE、CLOSE、SEEK、GetInfoなどの基本的なファイル処理を行う。アプリケーションは、適当な引数とともにAPIを介してファイルシステムを呼び出し、任意のファイル処理を行わせることができる。
一般に、ファイルシステムではファイル処理の際のアクセス開始位置(SEEK位置)をファイルポインタで管理している。このファイルポインタは、READやWRITE等でファイルを順に処理する場合は、この処理に従ってREADやWRITEの行われたデータサイズ分移動する。一方、処理の都合上、前処理の終了位置とアクセス開始位置とが異なる場合はSEEKを行ってSEEK位置を指定する必要が生ずる。
このSEEKを利用した技術として、ファイルのOPEN後にデータの書込みが終了してもファイルをCLOSEせず、またファイルのOPEN後にデータを読み出しが終了してもファイルをCLOSEしないことにより、補助記憶装置をいわゆるリングバッファのように用いて順次書込み及び読み出しを行うことができ、転送速度を高めることができる記憶制御装置が知られている(特許文献1など)。
特開2000−259366号公報
一般に、ファイルシステムではファイル処理の際のアクセス開始位置(SEEK位置)をファイルポインタで管理している。このファイルポインタは、READやWRITE等でファイルを順に処理する場合は、この処理に従ってREADやWRITEの行われたデータサイズ分移動する。一方、処理の都合上、前処理の終了位置とアクセス開始位置とが異なる場合はSEEKを行ってSEEK位置を指定する必要が生ずる。
このSEEKを利用した技術として、ファイルのOPEN後にデータの書込みが終了してもファイルをCLOSEせず、またファイルのOPEN後にデータを読み出しが終了してもファイルをCLOSEしないことにより、補助記憶装置をいわゆるリングバッファのように用いて順次書込み及び読み出しを行うことができ、転送速度を高めることができる記憶制御装置が知られている(特許文献1など)。
上述したようにファイルシステムはOSにより仕様が異なる。従って、OPENしたファイルに追記を行ってもこの追記部分に対するSEEKが可能なファイルシステムが存在する一方、一部のOSではSEEK可能範囲がファイルOPEN時のファイル容量(ファイルサイズ)に制限されるものも存在し、新たに追記した部分にはSEEK不可能な仕様が存在する。
図7に追記部分へのSEEK不可能なファイルシステムを説明する図を示した。図7の左が新規ファイル作成時の例、図7の右が既存ファイルにデータ追加を行った例である。同図における各ファイルのサイズは、新規ファイルのデータ書き込み後のファイルサイズがmバイト、既存ファイルサイズがkバイト、既存ファイルにデータ追加されて生成されるファイル容量がlバイトである。
新規ファイルが作成されると所定のデータ処理後のデータがこの新規ファイルに書き込まれ、(1−b)のようにmバイトの新規書き込み領域が生成される。このときファイルポインタはデータ書き込みに伴って0バイトからmバイトまで移動する。この新規ファイル作成において、ファイルOPEN時のファイル容量は0バイトであるので0〜mバイトが追記部分に相当する。すなわち、mバイトまでファイル書き込み終了後は(1−c)のようにこの追記部分のうち0バイト以上mバイト未満のいずれかの位置にアクセスする必要が生じてもSEEK位置を移動することができないためアクセス不可能であった。
また、ファイルにデータを追記した場合は、まず(2−a)のように既存のファイルが読み込まれてkバイトの既存領域が生成される。この既存領域はファイルOPEN時のファイル容量なのでSEEK位置を移動可能である。そして所定のデータ処理後のデータがk〜lバイトに追記されて(2−b)のように全ファイル容量がlバイトとなる。すなわちlバイトまでファイル書込み終了後は、0〜kバイトへはSEEK位置を移動可能であるがkバイトより大きくlバイト以下の範囲へはSEEK位置を移動不可能となる。
新規ファイルが作成されると所定のデータ処理後のデータがこの新規ファイルに書き込まれ、(1−b)のようにmバイトの新規書き込み領域が生成される。このときファイルポインタはデータ書き込みに伴って0バイトからmバイトまで移動する。この新規ファイル作成において、ファイルOPEN時のファイル容量は0バイトであるので0〜mバイトが追記部分に相当する。すなわち、mバイトまでファイル書き込み終了後は(1−c)のようにこの追記部分のうち0バイト以上mバイト未満のいずれかの位置にアクセスする必要が生じてもSEEK位置を移動することができないためアクセス不可能であった。
また、ファイルにデータを追記した場合は、まず(2−a)のように既存のファイルが読み込まれてkバイトの既存領域が生成される。この既存領域はファイルOPEN時のファイル容量なのでSEEK位置を移動可能である。そして所定のデータ処理後のデータがk〜lバイトに追記されて(2−b)のように全ファイル容量がlバイトとなる。すなわちlバイトまでファイル書込み終了後は、0〜kバイトへはSEEK位置を移動可能であるがkバイトより大きくlバイト以下の範囲へはSEEK位置を移動不可能となる。
このようにSEEKに制限のある仕様のファイルシステムを採用した携帯電話機やPCなどの情報処理を行う電気電子機器には、SEEKに制限の無い仕様を前提として開発されたアプリケーションの使用がそのままではできなくなる。この場合の対策として、アプリケーションのアルゴリズム(手順)を変更することが考えられる。
この変更としては、例えば追加部分の書込開始位置からデータを書き込むために、SEEK可能な位置から書込開始位置までのデータを全て読み込み、読み込んだデータと書き込むべきデータとをバッファ上で1つにまとめ、SEEK可能な位置を指定してSEEKを行った後でまとめたデータをそのSEEKした位置から書き込む、というアルゴリズムが必要となる。このアルゴリズムを採用するとアルゴリズムの大幅な変更が伴うためアプリケーションの開発工程および検査工程が増大するとともにアプリケーションプログラム側の負担が増大するという問題がある。
この変更としては、例えば追加部分の書込開始位置からデータを書き込むために、SEEK可能な位置から書込開始位置までのデータを全て読み込み、読み込んだデータと書き込むべきデータとをバッファ上で1つにまとめ、SEEK可能な位置を指定してSEEKを行った後でまとめたデータをそのSEEKした位置から書き込む、というアルゴリズムが必要となる。このアルゴリズムを採用するとアルゴリズムの大幅な変更が伴うためアプリケーションの開発工程および検査工程が増大するとともにアプリケーションプログラム側の負担が増大するという問題がある。
本発明は、上記課題に鑑みてなされたもので、SEEK可能位置がファイルOPEN時のファイル容量内に制限されるファイルシステムに対しても、アルゴリズムの大幅な変更を伴わず、かつ処理効率のよい手法で追加部分へのSEEKを可能とするファイル処理装置、ファイル処理方法およびファイル処理プログラムを提供することを目的とする。
上記目的を達成するため、本発明は、シークがファイルオープン時のファイル容量内に制限されるファイルシステムに対して所定のファイル処理を指示するファイル処理装置であって、仮ファイル作成手段と開き直し手段と書込手段とを備えることを特徴とする。
上記仮ファイル作成手段は、ファイルに対する所定のデータ処理が開始されると、所定のファイル容量を持つ仮ファイルの作成を上記ファイルシステムに指示する。次に上記ファイルシステムに対して上記開き直し手段がクローズとオープンとを順に指示する。そして上記書込手段は開き直された仮ファイルに対する上記データ処理の結果の書き込みをファイルシステムに指示し、この書込み終了後に同仮ファイルのクローズをファイルシステムに指示する。
上記所定のファイル容量とは、データ処理後のデータを格納するのに十分な容量が望ましく、仮ファイルは新規ファイルとして用意されたり、既存のファイルに所定のファイル容量となるように領域を追加して用意されたりしてもよい。すなわち、データ処理後のデータを新規ファイルに格納する場合は、新規ファイルの容量が所定のファイル容量となり、データ処理後のデータを既存のファイルの更新ファイルとして保存する場合は、既存のファイルに一定の容量を追加して所定のファイル容量とする。
また所定のファイル容量は、処理の種類、処理前のファイル容量等により処理後に作成されると想定される容量とすることが考えられ、例えば処理のアルゴリズムに基づいて想定できる。また、上記十分な容量とは、格納に必要と想定される容量以上を意味する。従ってファイル処理装置の機器特性(バッファサイズ、処理速度、記憶領域容量等)次第では、格納に必要とされる容量と同一であっても良いし、格納に必要とされる容量より大きな仮ファイルを作成してもよい。アルゴリズムに基づいても格納に必要な容量が想定不可能な処理では、一定容量の新規ファイルを作成したり、一定容量の領域現在のファイルに追加することが考えられる。該十分な容量は、予めチューニングされた式や値のテーブルをプログラム段階で設定することが考えられる。
上記クローズとオープンは上記仮ファイルの全領域でシーク可能とするために行うものであり、仮ファイル容量をファイルオープン時のファイル容量と一致させるために行う。上記制限とはファイル容量内でのみ可能でありファイル容量を超えると不可能となることを意味する。該ファイル処理装置は、携帯電話やPCや情報家電等、ファイル処理を行う情報処理装置が考えられる。
また所定のファイル容量は、処理の種類、処理前のファイル容量等により処理後に作成されると想定される容量とすることが考えられ、例えば処理のアルゴリズムに基づいて想定できる。また、上記十分な容量とは、格納に必要と想定される容量以上を意味する。従ってファイル処理装置の機器特性(バッファサイズ、処理速度、記憶領域容量等)次第では、格納に必要とされる容量と同一であっても良いし、格納に必要とされる容量より大きな仮ファイルを作成してもよい。アルゴリズムに基づいても格納に必要な容量が想定不可能な処理では、一定容量の新規ファイルを作成したり、一定容量の領域現在のファイルに追加することが考えられる。該十分な容量は、予めチューニングされた式や値のテーブルをプログラム段階で設定することが考えられる。
上記クローズとオープンは上記仮ファイルの全領域でシーク可能とするために行うものであり、仮ファイル容量をファイルオープン時のファイル容量と一致させるために行う。上記制限とはファイル容量内でのみ可能でありファイル容量を超えると不可能となることを意味する。該ファイル処理装置は、携帯電話やPCや情報家電等、ファイル処理を行う情報処理装置が考えられる。
上述したファイル処理装置は、ある機器に組み込まれた状態で他の方法とともに実施されることもある等、各種の態様を含む。また、本発明は、上述した装置の構成に対応した工程を有する制御方法、上述した装置の構成に対応した機能をコンピュータに実現させるプログラム、該プログラムを記録したコンピュータ読み取り可能な記録媒体、等としても適用可能である。これらファイル処理方法、ファイル処理プログラム、該プログラムを記録した媒体、の発明も、上述した作用、効果を奏する。
以上説明したように請求項1、請求項7、請求項8に係る発明よれば、シークがファイルオープン時のファイル容量内に制限されるファイルシステムが採用されたファイル処理装置であっても、仮ファイルの作成処理および仮ファイルの開き直し処理をデータ処理開始時に一回行うだけで、データ処理により増加したファイル領域にもシークが可能なファイル処理装置、ファイル処理方法、ファイル処理プログラムを提供できる。
また請求項2に係る発明によれば、アルゴリズムに基づいて仮ファイルを作成するためより適切な容量の仮ファイルを用意することが可能となる。
そして請求項3に係る発明によれば、予め容易されたテーブルにより各データ処理に必要な仮ファイルの容量を想定するため、計算処理を行う必要が無く、処理時間短縮につながる。
また請求項2に係る発明によれば、アルゴリズムに基づいて仮ファイルを作成するためより適切な容量の仮ファイルを用意することが可能となる。
そして請求項3に係る発明によれば、予め容易されたテーブルにより各データ処理に必要な仮ファイルの容量を想定するため、計算処理を行う必要が無く、処理時間短縮につながる。
さらに請求項4に係る発明によれば、変化率を示す情報により各処理の前後で変化するファイル容量を計算するので、より適切な容量の仮ファイルを用意することができる。
さらに請求項5に係る発明によれば、仮に上記計算より処理後のファイル容量が超過しても仮ファイルに領域を追加し、かつ仮ファイルの開き直しを行うので、仮ファイルの容量不足を回避するとともに仮ファイルの全領域にシーク可能とすることができる。
また請求項6に係る発明によれば、メモリに記録する前に余剰領域を削除するためメモリを効率的に利用可能となる。
さらに請求項5に係る発明によれば、仮に上記計算より処理後のファイル容量が超過しても仮ファイルに領域を追加し、かつ仮ファイルの開き直しを行うので、仮ファイルの容量不足を回避するとともに仮ファイルの全領域にシーク可能とすることができる。
また請求項6に係る発明によれば、メモリに記録する前に余剰領域を削除するためメモリを効率的に利用可能となる。
以下、下記の順序に従って本発明の実施形態を説明する。
(1)本発明の構成:
(2)ファイル処理:
(1)本発明の構成:
(2)ファイル処理:
(1)本発明の構成:
以下、本発明のファイル処理装置を具体化した一実施形態としての携帯電話機を図1〜6に従って説明する。
図1は携帯電話機の外観を示す正面図である。携帯電話機10は、電話機能(通話機能)と無線送信機能の他に、少なくとも、電子メール機能と、ブラウザ機能と、静止画や動画を撮影するカメラ機能を備えている。
以下、本発明のファイル処理装置を具体化した一実施形態としての携帯電話機を図1〜6に従って説明する。
図1は携帯電話機の外観を示す正面図である。携帯電話機10は、電話機能(通話機能)と無線送信機能の他に、少なくとも、電子メール機能と、ブラウザ機能と、静止画や動画を撮影するカメラ機能を備えている。
携帯電話機10は、操作面11を有する操作部10aと、表示パネル15を有する表示部10bと備え、この操作面11と表示パネル15とが対面するように開閉可能に連結されている。操作面11は入力を行う操作キー12を備えている。操作キー12は少なくとも電話番号入力または文字入力のために操作される複数のキーと、項目を選択するための選択キー(十字キー)と、項目の選択入力を行う決定キーとを備えるが、これら以外に電源キー、電子メールキー、インターネットキー(ブラウザ起動キー)、などの各種機能が割り当てられたキーを備えてもよい。携帯電話機10には各種アプリケーションが搭載され、表示パネル15の画面にアプリケーションで扱われる各種画像やテキストなどが表示される。
図2は携帯電話機10の電気的構成を示すブロック図である。携帯電話機10は、概略、CPU21と、ROM22と、RAM23と、通信部24と、操作キー12と、表示パネル15と、Removable Memory Interface(以下、RMIFと略す)25とを備える。通信部24は公衆電話回線網と接続できる所定周波数帯域の電波を送受信できるアンテナおよび通信回路を備え、通話、電子メールおよびインターネットを可能にする。また通信部24は赤外線通信やBluetooth(R)などの近距離無線通信部を備えてもよい。
RMIF25は、携帯電話機10の操作部10aに挿着されたRemovable Memory(以下、RMと略す)26と接続される。RM26は増設メモリとして機能し、携帯電話機10が取り扱う各種データなどが記憶可能である。また携帯電話機10は、OS(オペレーティングシステム)および携帯電話機の機能として必要な各種プログラムがROM22に格納されている。なお、例えば携帯電話機10内のROM22にはOS内あるいはOSとは別にファイルシステムを構築するファイルシステム用プログラムが記憶されており、またRM26には画像編集機能を有するアプリケーションプログラムが記憶されている。
図3は、携帯電話機10において、CPU21がファイルシステム用プログラムおよびアプリケーションプログラムを実行することにより構築される機能ブロック図である。
同図に示すように、携帯電話機10はファイルシステム30とファイル編集システム40とを備えている。ファイル編集システム40はアプリケーションプログラムであるファイル編集用プログラムをCPU21が実行すると携帯電話機10内に構築される。ファイルシステム30はファイル管理部35(本例ではRM26)に格納されているファイルを管理し、ファイル編集システム40がファイル管理部35にアクセスする場合はファイルシステム30を介して行う。ファイル編集システム40はファイルシステム30が管理するファイルを呼び出して、呼び出したファイルに対して編集処理(データ処理)を行う。
同図に示すように、携帯電話機10はファイルシステム30とファイル編集システム40とを備えている。ファイル編集システム40はアプリケーションプログラムであるファイル編集用プログラムをCPU21が実行すると携帯電話機10内に構築される。ファイルシステム30はファイル管理部35(本例ではRM26)に格納されているファイルを管理し、ファイル編集システム40がファイル管理部35にアクセスする場合はファイルシステム30を介して行う。ファイル編集システム40はファイルシステム30が管理するファイルを呼び出して、呼び出したファイルに対して編集処理(データ処理)を行う。
編集処理とは、1つの画像データに他の画像データを貼り付けて合成する処理(フレーム画像に写真画像を貼り付ける合成処理等)、あるいは画像データにテキストデータを貼り付けて合成する処理(画像データに住所・氏名などのテキストデータを貼り付ける合成処理)、画像をJPEGに圧縮する処理等である。フレーム画像は、例えば通信部24を介してインターネットに接続してメーカーやソフトサービス会社のサ一バが提供するものをダウンロードして入手する。写真画像は、携帯電話機10のカメラ機能を用いて撮像した写真やデジタルカメラで撮像した写真データをRM26に記憶させてこれを携帯電話機10に挿着することで取得する。特に本実施形態の編集処理では画像編集処理を例にとり説明する。
ファイル編集システム40は、入力制御部41とファイル要求部42と編集処理部43と変換テーブル44とを備える。入力制御部41は操作キー12からの入力を受け付け、例えば画像データの選択・取得のための操作入力、文字入力、その他各種の指示入力などを受け付ける。編集処理部43は、入力制御部41が受け付けた指示に基づき、複数の画像データを合成したり画像データとテキストデータを合成したりするなどの編集処理を行う。ファイル要求部42は、ファイルシステム30に対してSystemCallを発行し、ファイルに関する所定の処理を指示する。変換テーブル44は「処理の種類」と「容量変化率」とを対応付けるテーブルである。「容量変化率」は、「処理の種類」の処理により変化するファイル容量(ファイルサイズ)の割合を示す。
SystemCallには、OPEN(オープン)、CLOSE(クローズ)、READ(リード)、WRITE(ライト)、SEEK(シーク)などがある。ファイル編集システム40は、ファイルシステム30からSystemCallに対する返り値を受け取り、この返り値に基づき、指示した処理の成功・失敗などを判断する。なお、本実施形態では、OPEN、CLOSE、READ、WRITE、SEEKなどのSystemCallは、ライブラリ関数も含む広い概念のファイル操作関数を指す。
ファイルシステム30は、制御部31とFAT管理部32とバッファ33を備える。ファイルシステム30はSystemCallを受け付けると対応するファイル処理を実行する。すなわち制御部31は、ファイル編集システム40からファイル名で指定されたファイルを開くOPENのSystemCallを受け付けると、これに応答してファイル管理部35にアクセスして指定のファイルを読み込んでバッファ33上に展開するOPEN処理を行う。また、制御部31は、ファイル編集システム40からREADのSystemCallを受け付けると、これに応答してバッファ33上のファイルから指定のデータをファイル編集システム40に読み込ませるREAD処理を行う。さらに制御部31は、ファイル編集システム40からWRITEのSystemCallを受け付けると、これに応答してバッファ33上のファイルに指定されたデータを書き込むWRITE処理を行う。また、制御部31はファイル内の位置を指定するSEEKのSystemCallを受け付けると、ファイルポインタを指定された位置に移動させるSEEK処理を行う。シーク処理後、リードまたはライトのSystemCallを受け付けたときには、SEEKによって移動させた新たなファイルポインタの位置から、指定のデータの読込みまたは書込みを開始する。
本実施形態のファイルシステム30はFAT File Systemであり、FAT管理部32はFAT(ファイルアロケーションテーブル(File Allocation Table))を管理している。FATは、ファイルが格納管理されているファイル管理部35(本例ではRM26)に格納されるファイルの位置と順番を把握するために参照され、RM26上のファイルの物理的位置を記録したテーブルである。ファイルシステム30の制御部31は、OPEN処理やCLOSE処理等を行うときに、FAT管理部32のFATを参照する。制御部31は、ファイル管理部35からファイルを読み出したりファイル管理部35にファイルを書き込んだりするときは、FAT管理部32のFATを参照する。
ファイルシステム30では、RM26は非常に多数の小さなClusterに分割して管理され、ファイルは小さなPieceに分割されて、それぞれ別々のClusterに格納して保存される。FATは、Cluster内で各ファイルの状態を把握でき、新しいファイル作成時やデータ書込み時は、割り当てのないClusterを見つけることができる情報を制御部31に提供する。ファイルを読み出すときは、制御部31はFAT管理部32のFATを参照してそのファイルのPieceを組み立て直して閲覧できるようにする。
(2)データ処理:
以下、図4〜6を参照して本実施形態のファイル編集システム40のデータ処理について説明する。図4と図5はファイル構造の説明図、図6はファイル編集システム40のデータ処理を示すフローチャートである。図6のデータ処理は、入力制御部が所定のデータ処理の指示入力などを受け付けると実行される。ファイル編集システム40はデータ処理中に、適宜SystemCallを発行してファイルシステム30にファイル処理を実行させる。以下の説明では「OPENのSystemCallの発行」等を単に「OPENの発行」等として記載する。なお、本実施形態のファイルシステム30は、段落0003から段落0005で述べたようにファイルOPEN時のファイル範囲内にSEEK位置が制限される。
以下、図4〜6を参照して本実施形態のファイル編集システム40のデータ処理について説明する。図4と図5はファイル構造の説明図、図6はファイル編集システム40のデータ処理を示すフローチャートである。図6のデータ処理は、入力制御部が所定のデータ処理の指示入力などを受け付けると実行される。ファイル編集システム40はデータ処理中に、適宜SystemCallを発行してファイルシステム30にファイル処理を実行させる。以下の説明では「OPENのSystemCallの発行」等を単に「OPENの発行」等として記載する。なお、本実施形態のファイルシステム30は、段落0003から段落0005で述べたようにファイルOPEN時のファイル範囲内にSEEK位置が制限される。
携帯電話機10の利用者は、データ処理を行うための操作を所定の操作キー12に対して行うことによりファイル編集プログラムを起動可能である。携帯電話機10では、利用者から同操作の入力を受け付けると、まずステップS10でデータ処理の結果として生成されるデータを格納するのに十分な仮ファイル容量を想定する処理を行う。ファイル編集システム40は、処理種類と仮ファイルの容量とを関連付けた変換テーブル44を有し、この変換テーブル44によって処理の結果として生成されるデータの格納に十分な仮ファイルの容量を想定できる。(以下、想定された仮ファイル容量を想定容量と略す)
変換テーブル44としては、処理種類、処理対象ファイル(以下、元ファイルと略す)の容量、作成すべき仮ファイル容量、を関連付けたものが考えられる。処理対象ファイルの容量と仮ファイルの容量との関連付けの仕方としては、処理対象のファイル容量が所定容量範囲にあるとき所定容量の仮ファイルを作成するなどとすることができる。つまり処理対象のファイル容量が0〜aバイトの時は仮ファイルをAバイトに、a〜bバイトの時はBバイトに、b〜cバイトの時はCバイトに、とする。この変換テーブル44は、各処理において作成すべき仮ファイルの容量が定義されたテーブルに相当する。
また、変換テーブル44としては、処理種類と該処理による容量変化率(例えばJPEGでは圧縮率等)を関連付けたものでもよい。すなわち、ファイル編集システム40は、処理種類から容量変化率を取得し、処理対象ファイルの容量と取得した容量変化率から処理後のファイル(以下、新ファイルと略す)の容量を想定する。この想定における計算処理を実行するファイル編集システム40が計算手段を構成する。
次にステップS20で、ステップS10のファイル容量計算に従ってバッファ33上に仮ファイルを作成する。
新ファイルを元ファイルに上書きする場合は、ファイル要求部42がファイルシステム30に対して元ファイルを開くOPENを発行し、続いてファイルシステム30に対して仮ファイルを書き込むWRITEを発行する。ファイルシステム30ではOPENを受け付けると新規ファイルのOPEN処理が行われ、WRITEを受け付けると仮ファイルの書込み処理が行われる。
新ファイルを元ファイルに上書きする場合は、ファイル要求部42がファイルシステム30に対して元ファイルを開くOPENを発行し、続いてファイルシステム30に対して仮ファイルを書き込むWRITEを発行する。ファイルシステム30ではOPENを受け付けると新規ファイルのOPEN処理が行われ、WRITEを受け付けると仮ファイルの書込み処理が行われる。
これらの処理の想定容量をmバイトとすると、図4(a)に示すようにnバイトの元ファイルをバッファ33上に開き(m>nとする)、図4(b)に示すように元ファイル(nバイト)末端に所定容量(m−nバイト)のファイル(ダミーファイル)を追加し(容量拡張)、元ファイルと追加されたファイルとの合計が上述の想定容量(mバイト)となる仮ファイルを作成させる。すなわち、この時点での仮ファイルでは、元ファイル部分(0〜nバイト)は既存領域であり該元ファイル部分に対するSEEKは可能であるが、追加ファイル部分(n〜mバイト)は新規書込領域であり該追加ファイル部分に対するSEEKは不可能である。
一方、新ファイルを元ファイルとは別の新規ファイルとして作成する場合は、ファイル要求部42がファイルシステム30に対して新規ファイルを作成するOPENを発行し、新規ファイルがOPENされると仮ファイルを書き込むWRITEを発行する。ファイルシステム30ではOPENを受け付けると新規ファイルのOPEN処理が行われ、WRITEを受け付けると仮ファイルの書き込み処理が行われる。
これらの処理の想定容量をmバイトとすると、図5(a)に示すように所定容量(mバイト)のファイル(ダミーファイル)が新規ファイルとしてバッファ33に書込まれ、ファイル容量が想定容量(mバイト)の仮ファイルが作成される。すなわち、この時点での仮ファイルでは、全領域(0〜mバイト)が新規書込み領域であるため該全領域に対するSEEKが不可能である。
よって計算に基づいて所定の処理後のファイル格納に十分な容量を持つ仮ファイルが作成される。このステップS20を実行するファイル編集システム40が仮ファイル作成手段を構成する。ここでダミーファイルは、無意味なデータの書き込みやファイル容量情報の変更等により作成可能であり、各機器において採用したファイルシステムの仕様に従って作成される。
一方、新ファイルを元ファイルとは別の新規ファイルとして作成する場合は、ファイル要求部42がファイルシステム30に対して新規ファイルを作成するOPENを発行し、新規ファイルがOPENされると仮ファイルを書き込むWRITEを発行する。ファイルシステム30ではOPENを受け付けると新規ファイルのOPEN処理が行われ、WRITEを受け付けると仮ファイルの書き込み処理が行われる。
これらの処理の想定容量をmバイトとすると、図5(a)に示すように所定容量(mバイト)のファイル(ダミーファイル)が新規ファイルとしてバッファ33に書込まれ、ファイル容量が想定容量(mバイト)の仮ファイルが作成される。すなわち、この時点での仮ファイルでは、全領域(0〜mバイト)が新規書込み領域であるため該全領域に対するSEEKが不可能である。
よって計算に基づいて所定の処理後のファイル格納に十分な容量を持つ仮ファイルが作成される。このステップS20を実行するファイル編集システム40が仮ファイル作成手段を構成する。ここでダミーファイルは、無意味なデータの書き込みやファイル容量情報の変更等により作成可能であり、各機器において採用したファイルシステムの仕様に従って作成される。
ステップS22では、ステップS20で生成した仮ファイルの開きなおしを行う。つまり、ファイル要求部42はファイルシステム30に対して仮ファイルを指定してCLOSEを発行し、クローズ処理終了後OPENを発行する。CLOSEを受け付けたファイルシステム30では、仮ファイルのクローズ処理が行われる。すなわち、制御部31はFAT管理部32のFATを参照してファイル管理部内の空き容量を検索し、バッファ33の仮ファイルをファイル管理部35の引き当てた空き容量に書き込む。次に、OPENを受け付けたファイルシステム30では、仮ファイルのOPEN処理が行われる。すなわち、制御部31はFAT管理部32のFATを参照して仮ファイルを構成する各Pieceが格納されたClusterを調べ、ファイル管理部35内における各Clusterから読み込んだPieceを組立て直してバッファ33上に仮ファイルを展開する。この処理により、図4(c)および図5(b)に示すように仮ファイルの全領域(0〜mバイト)が既存領域となり、該全領域に対するSEEKが可能となる。このステップS22を実行するファイル編集システム40が開き直し手段を構成する。
ステップS24では、所定の処理を行って該所定の処理の結果(新ファイル)を仮ファイルに書き込む。つまり、ファイル要求部42は、ファイルシステム30に対してバッファ33上の仮ファイルに新ファイルを書き込むWRITEを発行する。WRITEを受け付けたファイルシステム30では、仮ファイル上に新ファイルを書き込むWRITE処理が行われる。仮ファイルは上述の計算により新ファイルを格納可能な容量に作成されており、新ファイルは仮ファイル上に全て書込み可能である。すなわち、この書込み処理では、図4(d)および図5(c)に示すように新ファイル(0〜kバイト)が既存領域である仮ファイル(0〜mバイト、k≦m)上に書き込まれるため新ファイル(0〜kバイト)の全領域に対するSEEKが可能となる。
ところで、仮ファイルは所定の処理のアルゴリズムに基づいた容量で作成されるが、処理によってはアルゴリズムに基づく新ファイルの容量計算が難しいものも存在する。このような場合、新ファイルが上述のステップS20〜S24で作成した仮ファイルを超過して仮ファイルの領域が不足し、該新ファイルが該仮ファイル内に格納不可能な場合が考えられる。そこで仮ファイルに新ファイルの書込みが終了したか否かを判断する処理をステップS26で行う。ステップS26で条件成立時にはステップS28〜S30に進んでファイルCLOSEに関する処理を行い、条件不成立時にはステップS32〜S34に進んで仮ファイルへの領域追加に関する処理を行う。
ステップS32では、仮ファイル領域が終了しているか否かを判断する。具体的には、所定の処理により作成された新ファイルを仮ファイル領域に書き込んでいき、仮ファイル領域全体に新ファイルが書き込まれているが、新ファイルの書込みは終了していない状態であるか否かを判断する。この判断は、例えば所定時間毎や所定書込み量毎に行われ、書込み処理に従って移動したポインタと仮ファイルの末端アドレスとを比較する等して実現できる。これは所定の処理により生成された新ファイルが仮ファイルよりも大きいか否かの判断とも言える。仮ファイル領域が未終了のときはステップS22に戻って書き込み処理を続行する(条件不成立)。一方、仮ファイル領域が終了している場合はステップS34に進む(条件成立)。
ステップS34では、仮ファイルの末端に所定容量の領域を追加する。つまりファイル編集システム40はファイルシステム30に仮ファイルの末端に所定容量の領域を追加させるWRITEを発行する。WRITEを受け付けるとファイルシステム30はダミーファイルの書込み処理を行う。この処理では、仮ファイル末端から後方に所定容量のファイル(ダミーファイル)を書き込むことにより領域を追加する。つまり図4(e)および図5(d)のように仮ファイル(0〜kバイト)の末端(kバイト目)から後方に所定容量(l−m、l≧m)の領域を追加して仮ファイルの総容量をlバイトとする。このときk〜lバイトは新規書込領域なのでSEEK不可能である。
ステップS34終了後、ステップS22に戻り新たな仮ファイルの開き直しを行うため新たな仮ファイル(0〜lバイト)の全領域に対するSEEKが可能となる。そしてステップS24の書込み処理を継続する。
ステップS34終了後、ステップS22に戻り新たな仮ファイルの開き直しを行うため新たな仮ファイル(0〜lバイト)の全領域に対するSEEKが可能となる。そしてステップS24の書込み処理を継続する。
ここでステップS34の所定容量とは各機器特性によりファイル編集プログラムのプログラム段階で予め設定される量である。機器特性としては、例えば機器によるメモリ(バッファ)の多寡であり、メモリの少ない機器では一定量(例えば10KBなど)ずつ追加し、メモリが十分な機器では一気に追加(例えば現ファイル容量の一割など)することが考えられる。また、メモリの総量で判断するようにプログラムしても良いし、メモリの空き容量で判断するようにプログラムしても良い。
むろん所定の処理により生成される新ファイルの容量を該所定の処理のアルゴリズムに基づいて間違いなく計算可能である場合(必ず所定容量以下になるとの想定が可能な場合)、もしくは計算された新ファイルの容量より十分に大きな仮ファイルを用意できるだけのメモリを有している場合は、ステップS26、S32、S34の処理は無くても構わない。
むろん所定の処理により生成される新ファイルの容量を該所定の処理のアルゴリズムに基づいて間違いなく計算可能である場合(必ず所定容量以下になるとの想定が可能な場合)、もしくは計算された新ファイルの容量より十分に大きな仮ファイルを用意できるだけのメモリを有している場合は、ステップS26、S32、S34の処理は無くても構わない。
一方、ステップS28では仮ファイルの余剰領域を無効化する処理を行う。この無効化処理としては、ファイルを終了させたい位置にファイル終端を示す情報(例えばEOF(EndOfFile)やEOI(EndOfImage)等)を付加することによって行う。本実施例ではEOFでファイル終端を示す場合を例にとって説明する。
まず、ファイル編集システム40はファイルシステム30に例えばSEEKとSetEndOfFileを順に発行する(ファイルシステムによってはtruncateの発行で代替可能)。ここでSEEKは仮ファイル中の新ファイル末端を指定して行われ、次いで発行されるSetEndOfFileは新ファイル末端に移動したファイルポインタを指定して行われる。
このSEEKを受け付けたファイルシステムは指定された位置にファイルポインタを移動させるSEEK処理を行う。またSetEndOfFileを受け付けたファイルシステムは現在のファイルポインタの位置にファイル終端を示す情報を付加する。このSEEK処理とSetEndOfFile処理により仮ファイルのEOFを新ファイルの末端に移動させ、仮ファイルの容量を新ファイルの容量に一致させることができる。
つまり図4(f)および図5(e)では、ステップS28の処理前はmバイト目に記載されていたEOFを該処理によりkバイト目に移動させ、仮ファイル(0〜mバイト)中で新ファイル(0〜kバイト)が記録されていない領域(k〜mバイト)を無効化することにより仮ファイルから削除することができる。よって仮ファイルからデータの記載されていない余剰領域が無くなり、仮ファイルの保存に必要なメモリを少なくすることが可能となる。
まず、ファイル編集システム40はファイルシステム30に例えばSEEKとSetEndOfFileを順に発行する(ファイルシステムによってはtruncateの発行で代替可能)。ここでSEEKは仮ファイル中の新ファイル末端を指定して行われ、次いで発行されるSetEndOfFileは新ファイル末端に移動したファイルポインタを指定して行われる。
このSEEKを受け付けたファイルシステムは指定された位置にファイルポインタを移動させるSEEK処理を行う。またSetEndOfFileを受け付けたファイルシステムは現在のファイルポインタの位置にファイル終端を示す情報を付加する。このSEEK処理とSetEndOfFile処理により仮ファイルのEOFを新ファイルの末端に移動させ、仮ファイルの容量を新ファイルの容量に一致させることができる。
つまり図4(f)および図5(e)では、ステップS28の処理前はmバイト目に記載されていたEOFを該処理によりkバイト目に移動させ、仮ファイル(0〜mバイト)中で新ファイル(0〜kバイト)が記録されていない領域(k〜mバイト)を無効化することにより仮ファイルから削除することができる。よって仮ファイルからデータの記載されていない余剰領域が無くなり、仮ファイルの保存に必要なメモリを少なくすることが可能となる。
むろん所定の処理により生成されるファイルが、その仕様上、後部に無意味なデータが存在しても構わないのであれば、ステップS28、S30の処理は省略しても構わない。例えば、JPEGのように0〜xバイトに意味のある情報が存在するとのヘッダを持つことにより読み取り可能な部分のみを解釈して画像表示を行う仕様であれば、後部に読み取り不可能なデータが存在しても構わないため、余剰領域の削除は省略可能である。この省略は、実用的には記録媒体(本実施例ではRM26)の容量が十分な場合に可能である。
ステップS30ではファイルクローズを行う。つまりファイル編集システム40はファイルシステムに対してCLOSEを発行して処理を終了する。このCLOSEを受け付けたファイルシステムの制御部31は、FAT管理部32のFATを参照してファイル管理部内の空き領域を探索してバッファ33の仮ファイルをファイル管理部35の引き当てた空き領域に書き込む(保存する)。そしてFATにファイルの格納位置を書き込んで更新する。すなわち余剰領域の削除された仮ファイルがRM26に書き込まれる。すなわち図4(f)および図5(e)に示すように全領域に新ファイルが記録された(無駄なデータの記載されていない)仮ファイル(kバイト)がメモリに記録される。以上、ステップS24、S26、S28、S30、S32、34の処理を実行するファイル編集システム40が書込手段を構成する。
以上より、SEEK処理の発生する可能性のあるステップS24のデータ書込み中およびステップS28の余剰領域削除中は、仮ファイル領域内に対するSEEK処理を確実に行うことのできるファイル編集システムを提供することができる。また、予め処理後のファイル容量を計算して仮ファイルを作成するため、ステップS32〜S34で領域を追加する必要が発生することは稀であり、ファイル開き直し回数はステップS22の一回だけと効率的になり処理時間を短縮することができる。また仮ファイルの容量が不足しても、予め各処理のアルゴリズムに基いて仮ファイルを作成しているため領域追加の回数は少なくてすむ。
またアルゴリズムの大幅な変更を伴わない他のデータ処理として、例えばアプリケーションに以下の変更を行うことも考えられる。すなわち、ファイル書込み時に追加部分へのSEEKが可能なファイルシステムであるか否かを判断し、さらにこのファイル書込みが使い部分への書込みであるか否かを判断する。そして追加部分へのSEEK不可能であり、かつ拡張部分への書込みである場合は、書き込み後にファイルの開きなおしをする。但し、このアルゴリズムではファイル書込みが発生するたびに判断する処理を行うことに加えて追加部分への書込みでは書き込むたびにファイルが開き直されるため、段落0025から段落0040に記載のデータ処理に比べて処理効率が劣り、処理時間の増加が避けられない。
なお、本発明は、上述した実施形態や変形例に限られず、上述した実施形態および変形例の中で開示した各構成を相互に置換したり組み合わせを変更したりした構成、公知技術並びに上述した実施形態および変形例の中で開示した各構成を相互に置換したり組み合わせを変更したりした構成、等も含まれる。
10…携帯電話機 10a…操作部 10b…カバー部 11…操作キー 15…表示部
21…CPU 22…ROM 23…RAM 24…通信部 25…Removable Memory I/F(RMIF) 26…Removable Memory(RM)
30…ファイルシステム 31…制御部 32…FAT管理部 33…バッファ 35…ファイル管理部 40…ファイル編集システム 41…入力制御部 42…ファイル要求部 43…編集処理部 44…変換テーブル
21…CPU 22…ROM 23…RAM 24…通信部 25…Removable Memory I/F(RMIF) 26…Removable Memory(RM)
30…ファイルシステム 31…制御部 32…FAT管理部 33…バッファ 35…ファイル管理部 40…ファイル編集システム 41…入力制御部 42…ファイル要求部 43…編集処理部 44…変換テーブル
Claims (8)
- 各種の指示を受け付け、同指示に対応するファイル処理を実行するファイルシステムに対し、上記指示を出して所定のデータ処理を実現するファイル処理装置であって、
ファイルに対する所定のデータ処理が開始されると、所定のファイル容量を持つ仮ファイルの作成を上記ファイルシステムに対して指示する仮ファイル作成手段と、
上記ファイルシステムに対して同仮ファイルをクローズした後、オープンさせる指示を出す開き直し手段と、
上記所定のファイル処理の結果を上記開き直された仮ファイルに対して書き込む指示を出し、この書き込み処理後に同仮ファイルをクローズする指示を出す書込手段と、を備えることを特徴とするファイル処理装置。 - 上記所定のファイル容量は、上記データ処理のアルゴリズムに基づいて、該データ処理後のデータを格納するのに十分と想定される容量であることを特徴とする上記請求項1に記載のファイル処理装置。
- 各データ処理において作成すべき仮ファイルの容量が定義されたテーブルを備えることを特徴とする上記請求項1または請求項2に記載のファイル処理装置。
- 各処理の前後で変化するファイル容量の変化率を示す情報を有し、該情報に基づいてファイル容量の変化を計算する計算手段を備えることを特徴とする上記請求項1〜請求項3のいずれかに記載のファイル処理装置。
- 上記書込手段は、書き込み中に上記仮ファイルの容量が不足すると所定容量の追加を指示した後、上記開き直し手段に該仮ファイルのクローズとオープンとを順に指示させてから書き込みを続行することを特徴とする上記請求項1〜請求項4のいずれかに記載のファイル処理装置。
- 上記書込手段は、上記仮ファイルをクローズする前に、該仮ファイルの余剰領域の無効化を指示することを特徴とする上記請求項1〜請求項5のいずれかに記載のファイル処理装置。
- 各種の指示を受け付け、同指示に対応するファイル処理を実行するファイルシステムに対し、上記指示を出して所定のデータ処理を実現するファイル処理方法であって、
ファイルに対する所定のデータ処理が開始されると、所定のファイル容量を持つ仮ファイルの作成を上記ファイルシステムに対して指示する仮ファイル作成工程と、
上記ファイルシステムに対して同仮ファイルをクローズした後、オープンさせる指示を出す開き直し工程と、
上記所定のファイル処理の結果を上記開き直された仮ファイルに対して書き込む指示を出し、この書き込み処理後に同仮ファイルをクローズする指示を出す書込工程と、を備えることを特徴とするファイル処理方法。 - 各種の指示を受け付け、同指示に対応するファイル処理を実行するファイルシステムに対し、上記指示を出して所定のデータ処理を実現するファイル処理プログラムであって、
ファイルに対する所定のデータ処理が開始されると、所定のファイル容量を持つ仮ファイルの作成を上記ファイルシステムに対して指示する仮ファイル作成機能と、
上記ファイルシステムに対して同仮ファイルをクローズした後、オープンさせる指示を出す開き直し機能と、
上記所定のファイル処理の結果を上記開き直された仮ファイルに対して書き込む指示を出し、この書き込み処理後に同仮ファイルをクローズする指示を出す書込機能と、をコンピュータに実現させることを特徴とするファイル処理プログラム。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2006214475A JP2008040806A (ja) | 2006-08-07 | 2006-08-07 | ファイル処理装置、ファイル処理方法およびファイル処理プログラム |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2006214475A JP2008040806A (ja) | 2006-08-07 | 2006-08-07 | ファイル処理装置、ファイル処理方法およびファイル処理プログラム |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2008040806A true JP2008040806A (ja) | 2008-02-21 |
Family
ID=39175732
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2006214475A Pending JP2008040806A (ja) | 2006-08-07 | 2006-08-07 | ファイル処理装置、ファイル処理方法およびファイル処理プログラム |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2008040806A (ja) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114936387A (zh) * | 2022-07-25 | 2022-08-23 | 深圳市明源云科技有限公司 | 文本文件读取方法、写入方法、电子设备及可读存储介质 |
-
2006
- 2006-08-07 JP JP2006214475A patent/JP2008040806A/ja active Pending
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114936387A (zh) * | 2022-07-25 | 2022-08-23 | 深圳市明源云科技有限公司 | 文本文件读取方法、写入方法、电子设备及可读存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11468008B2 (en) | File processing method and mobile terminal | |
US11586683B2 (en) | Methods, systems and recording mediums for managing conversation contents in messenger | |
CN101421714A (zh) | 用于多媒体可移动记笔记的用户体验 | |
US20140237024A1 (en) | Network communication devices and file tracking methods thereof | |
CN106294658A (zh) | 网页快速展示方法和装置 | |
WO2014205903A1 (zh) | 文件显示方法及装置 | |
CN107291839A (zh) | 分享图片的方法和设备 | |
KR20150055600A (ko) | 전자책 문서 처리방법, 단말기, 전자기기, 프로그램 및 기록매체 | |
CN108595503A (zh) | 文件处理方法及服务器 | |
CN108415986A (zh) | 一种数据处理方法、装置、系统、介质和计算设备 | |
CN111932198B (zh) | 文件审核方法及相关产品 | |
WO2022206476A1 (zh) | 水印处理方法、装置、电子设备及介质 | |
CN108228776A (zh) | 数据处理方法、装置、存储介质及电子设备 | |
JP4716136B2 (ja) | 電子メールの保存方法、電子メールの再生方法、電子メールシステム、および電子メール保存/再生プログラム | |
JP2008040806A (ja) | ファイル処理装置、ファイル処理方法およびファイル処理プログラム | |
JP4142866B2 (ja) | データベース同期化装置及びプログラム | |
US7213033B2 (en) | Automatically populating an application's working directory with files having a specified type from other directory locations | |
CN115495020A (zh) | 文件处理方法、装置、电子设备和可读存储介质 | |
CN111767417A (zh) | 应用图片的管理方法、装置、设备及存储介质 | |
EP4283483A1 (en) | File continuation method and apparatus, and terminal device and storage medium | |
CN109471756A (zh) | 数据恢复方法、装置及计算机可读存储介质 | |
CN109189593A (zh) | 一种数据处理的方法、装置、计算机设备和存储介质 | |
CN108008984A (zh) | 一种资源文件下载更新方法及装置 | |
CN108628540A (zh) | 数据存储装置及方法 | |
CN102916993A (zh) | 一种网络硬盘数据更新方法以及装置 |