File management system

Disclosed herein is a file management system that includes an unformatted raw data area storing a plurality of raw data files at respective locations within the unformatted raw data area. The storage medium also includes a formatted partitioned area that includes a plurality of partitions each associated with a different file system. Each partition includes a plurality of metadata files each corresponding with one of the plurality of raw data files. Each metadata file includes metadata regarding the corresponding one of the plurality of raw data files.

FIELD

This disclosure relates generally to file management systems, and more particularly to file management systems that store digital content in multiple file systems.

BACKGROUND

File management systems are systems, such as operating systems or programs, which manage the storage and retrieval of digital content. The structure and logic rules used by file management systems to manage groups of digital content are defined as a file system. Different file systems use different structures and logic rules to separate, organize, and identify digital content. Common file systems include ISO 9660, file allocation table (FAT), universal disk format (UDF), NTFS, and the like. Some file management systems employ a single type of file system to control how digital content is stored and retrieved by the file management system. Other file management systems may utilize multiple types of file systems when controlling the storage and retrieval of digital content.

SUMMARY

The subject matter of the present application has been developed in response to the present state of the art, and in particular, in response to problems and shortcomings of conventional file management systems that have not yet been fully solved by currently available systems. Conventional host devices and associated digital content players may recognize no more than one file system, or at best a limited number of file systems. When digital content is stored in a recognized file system, the host device is able to access and retrieve the digital content. However, if the host device does not recognize the file system, the host device cannot access and retrieve the digital content. Often, one host device may have multiple digital content players each recognizing different file systems.

One method to address such file system incompatibility issues would be to record digital content in multiple separate storage devices each formatted with a different file system. The host device or associated user would then select the storage device with the file system that is compatible with a particular application or player operated by the host device. Such a method, or associated system, would require an excessive number of storage devices, which would drive upwardly management costs and time.

Another method to address file system incompatibility issues would be to partition a single storage device into multiple partitions, format each partition to have a different file system, and record a separate and full copy of the digital content in each of the multiple partitions. Because this method requires redundant copies of digital content, its implementation would result in wasted storage space, and thus a significant increase in cost.

In view of the limitations of today's host devices, the availability and use of many varieties of file systems, and lack of acceptable solutions, it may be desirable to improve the compatibility of host devices with multiple types of file systems without unduly increasing costs and/or wasting storage space. In general, the subject matter of the present application has been developed to provide a file management system that overcomes at least some of the above-discussed shortcomings of the prior art.

According to one embodiment, a storage medium for a file management system includes an unformatted raw data area storing a plurality of raw data files at respective locations within the unformatted raw data area. The storage medium also includes a formatted partitioned area that includes a plurality of partitions each associated with a different file system. Each partition includes a plurality of metadata files each corresponding with one of the plurality of raw data files. Each metadata file includes metadata regarding the corresponding one of the plurality of raw data files.

In some implementations of the storage medium, the metadata of each metadata file includes a location of the raw data file within the unformatted raw data area. The location includes a physical address of a starting point and an ending point of the raw data file within the unformatted raw data area.

According to certain implementations of the storage medium, a size of each partition varies based on the file system associated with the partition. The file systems of the plurality of partitions can be selected from the group consisting of universal disk format, file allocation table, and high performance. The storage medium may further include partition management blocks.

In another embodiment, a file management system includes a storage device with a storage medium with an unformatted raw data area storing a raw data file. The storage device also includes a formatted partitioned area that includes a first partition with a first file system and a second partition with a second file system that is different than the first file system. The first partition stores a first metadata file including metadata regarding the raw data file and the second partition stores a second metadata file including metadata regarding the raw data file. The file management system further includes a digital content player that plays the raw data file. The digital content player is configured to determine a location of the raw data file within the unformatted raw data area based on one of the first and second metadata files.

According to some implementations of the file management system, the digital content player is incapable of reading files from the second file system. The digital content player can determine the location of the raw data file within the unformatted raw data area based on the first metadata file. The digital content player can be a first digital content player configured to determine the location of the raw data file within the unformatted raw data area based on the first metadata file. The file management system can also include a second digital content player that executes the raw data file. The second digital content player can be incapable of reading files from the first file system and configured to determine the location of the raw data file within the unformatted raw data area based on the second metadata file.

In certain implementations of the file management system, the metadata regarding the raw data file of the first and second metadata files is the same. In some implementations, the metadata regarding the raw data file of the first and second metadata files includes a starting point and an ending point of the raw data file within the unformatted raw data area.

According to some implementations, the file management system further includes a digital content manager that stores the raw data file in the unformatted raw data area, generates the first and second metadata files, and stores the first and second metadata files in the first and second partitions, respectively. The digital content manager can format the first partition according to the first file system and format the second partition according to the second file system.

In yet another embodiment, a method for managing files includes parsing a partition of a plurality of partitions formatted into a storage medium. Each partition is formatted according to a different file system. The method also includes locating a metadata file stored in the partition, and obtaining a location in an unformatted area of the storage medium of a raw data file from the metadata file. Additionally, the method includes reading the raw data file from the unformatted area of the storage medium.

According to some implementations of the method, each partition of the plurality of partitions includes a metadata file. Each metadata file includes the location in the unformatted area of the storage medium of the raw data file.

In some implementations, the method can additionally include receiving a request to read the raw data file from a digital content player. The digital content player can be capable of parsing the file system of the partition of the plurality of partitions, but incapable of parsing the file system of at least another of the partitions of the plurality of partitions. The method can include selecting the partition to parse from the plurality of partitions based on the file system of the partition.

According to certain implementations, the method can include, prior to parsing the partition, writing the raw data file into the unformatted area of the storage medium, and writing a metadata file into each of the plurality of partitions according to the file system associated with each partition. Each metadata file can include a starting point and an ending point of the raw data file in the unformatted area of the storage medium. The method may additionally include writing the starting point and end point into a main memory before writing the metadata file into each of the plurality of partitions.

In some implementations of the method, the partition is a first partition and the metadata file is a first metadata file. The method can further include parsing a second partition of the plurality of partitions, locating a second metadata file stored in the second partition, and obtaining the location in the unformatted area of the raw data file from the second metadata file.

According to some implementations, the method can include writing a location of the metadata file into a main memory of the storage medium and writing an updated raw data file into the unformatted area. The updated raw data file can include an update to the raw data file. The method may further include writing a location of the updated raw data file in the unformatted area into the main memory. Additionally, the method can include modifying the metadata file to reflect the location of the updated raw data file in the unformatted area based on the location of the metadata file written into the main memory.

DETAILED DESCRIPTION

FIG. 1illustrates one embodiment of a file management system10. The system10includes a server20, an information handling device30, and a data network40, which are described in more detail below. Although the file management system10illustrated inFIG. 1includes a certain number and intercommunication configuration of elements, such as one server20and one information handling device30communicable with each other over one data network40, in other embodiments, the system can include any number of and intercommunication configuration of elements as desired without departing from the essence of the present disclosure.

The server20can be one or more servers. The server20, in one embodiment, can be one or more main frame computers, desktop computers, laptop computers, cloud servers, smart phones, tablet computers, and the like.

The data network40, in certain embodiments, is a digital communication network that transmits digital communications between the information handling device30and the server20. In some implementations, the data network40may include a wireless network, such as a wireless telephone network, a local wireless network, such as a Wi-Fi network, a Bluetooth® network, and the like. In yet some implementations, the data network40may include a wide area network (“WAN”), a storage area network (“SAN”), a local area network (“LAN”), an optical fiber network, the internet, or other digital communication network known in the art. The data network40may include two or more networks. Further, the data network40may include one or more servers, routers, switches, and/or other networking equipment. The data network40may also include computer readable storage media, such as a hard disk drive, an optical drive, non-volatile memory, random access memory (“RAM”), or the like.

The information handling device30, in one embodiment, may include one or more mobile computing devices, such as smart phones, tablet computers, laptops, optical head mounted displays, smart watches, and/or the like. In another embodiment, the information handling device30can include one or more immobile or stationary computing devices, such as desktop computers, servers, and/or the like. In some embodiments, the information handling device30includes operating systems, such as various versions of mobile and desktop operating systems provided by Microsoft®, Apple®, Linux, Android, and/or the like. For example, the information handling device30may include a tablet running a version of Apple® iOS, a smart phone running a version of Windows® Mobile, or a laptop running a distribution of Linux. In one embodiment, the information handling device30is communicatively coupled to the server20through the data network40. The information handling device30can access data stored on or transmitted from the server20through the data network40.

In the illustrated embodiment ofFIG. 1, the information handling device30includes a plurality of digital content players32A-C, a digital content manager34, and a storage device36. The features of the digital content players32A-C, digital content manager34, and storage device36are described in more details below. However, in general, each digital content player32A-C is configured to play (e.g., execute, read, access, etc.) digital content stored by the storage device36. In one implementation, each digital content player32A-C, which can be any of various software, firmware, and/or hardware elements that execute any of various programs and/or applications, recognizes different file systems. For example, the digital content player32A may recognize only a first file system, the digital content player32B may recognize only a second file system, and the digital content player32C may recognize only a third file system. The digital content is stored by the storage device36in a manner that promotes compatibility between the digital content players32A-C and the stored digital content without unduly increasing costs and/or wasting storage space. The digital content manager34controls the writing of data (e.g., raw data files and metadata files) to the storage device36, and the modification of data written to the storage device. In certain implementations, the information handling device30can include fewer, such as one, or more than three digital content players, and/or more than one digital content manager134and storage device136.

In one embodiment, digital content is transferred from the server20to the information handling device30via the data network40. Prior to being transferred to the information handling device30, the digital content may be initially stored on the server20or on any of various storage devices accessible by the server. The digital content manager34of the information handling device30then controls the storage onto the storage device36of the digital content received from the server20.

Although the information handling device30includes the digital content manager34and the storage device36, in some embodiments, the digital content manager34and/or the storage device36can be separated from the information handling device30. For example, the digital content manager34and/or the storage device36can be located on the server20, or other device, that is remote from the information handling device30and communicable with the digital content players32A-C of the information handling device via the data network40.

Additionally, although the file management system10includes a single information handling device30with multiple digital content players32A-C, in some embodiments, the file management system may include multiple handling devices30each with one or multiple digital content players. In such embodiments, each information handling device30may include its own digital content manager34and/or storage device36. However, in one particular embodiment, the file management system10includes multiple information handling devices30each with at least one digital content player, and the digital content manager34and storage device36are centrally located remotely away from the information handling devices, such as on the server20, and communicable with the information handling devices over the data network40.

Referring toFIG. 2, one embodiment of an information handling device130is shown. The features of the information handling device130are similar to analogous features of the information handling device30ofFIG. 1, with like numbers referring to like features. The information handling device130includes a digital content player132, digital content manager134, and storage device136. Although the information handling device130includes one digital content player132, one digital content manager134, and one storage device136, in some embodiments, the information handling device130can include more than one digital content player132, digital content manager134, and storage device136. Additionally, the digital content manager134and/or storage device136can be located remote from the information handling device130, and communicate with the information handling device over a data network to accomplish the same functionality as the illustrated embodiment ofFIG. 2.

The digital content player132includes several modules. In the illustrated embodiment, the digital content player132includes a partition recognition module140, digital content locator module142, digital content read module144, digital content processing module146, and storage device interface module148. The various modules may communicate with each other to cooperatively provide the functionality of the digital content player132. Generally, the storage device interface module148interfaces with the storage device136to facilitate communication with and access to the storage device.

The partition recognition module140is configured to detect the types of file systems supported by the storage device136and determine whether the storage device supports a file system recognized by the digital content player132. In some implementations, the partition recognition module140finds partitions formed in a storage medium162of the storage device136, detects the file system used within each partition, and determines whether a partition of the storage medium162uses a file system that is compatible with the digital content player132. Referring toFIG. 3, the partitions can be first through N partitions176-182formed in a partitioned area172of the storage medium162. Each partition176-182is formatted to employ a different file system for organizing data files stored in the partitions. For example, the first partition176may be formatted according to a first file system, the second partition178may be formatted according to a second file system, the third partition180may be formatted according to a third file system, and the Nth partition182may be formatted according to an Nth file system. Each of the first through Nth file systems are different from the other of the first through Nth file systems. Although the partitioned area172of the illustrated storage medium162is shows four partitions, in other embodiments, the partitioned area can have any number of partitions, as indicated by the use of an Nth partition, each having a respective one of any number of file systems. In this manner, the storage medium162accommodates the compatibility of the storage device136with digital content players that recognize any number of file systems.

The digital content locator module142is configured to locate digital content within a partition of the storage medium162that uses a file system recognized by the digital content player132. The digital content located by the digital content locator module142corresponds with a request by the digital content player132to access (e.g., read or play) the digital content. The digital content locator module142may access a partition management block170of the storage medium162to determine the location of a metadata file within the partition using the recognized file system. Accordingly, the known location of the metadata file is provided in terms of the hierarchy and organization of the particular file system recognized by the digital content player132.

As shown inFIG. 4, a partition190, which may represent each of the partitions176-182, employs a file system that identifies, categorizes, and organizes files in a particular way. Generally, file systems follow some organizational methodology that includes directories192, files (e.g., metadata files194,196) organized under a directory, and sub-directories198also organized under a directory. Therefore, the location of the metadata file provided by the partition management block170can be provided in terms of the hierarchal path of directories and sub-directories to the metadata file.

Knowing the location of the metadata file in the compatible partition, the digital content locator module142parses the file system of the partition to locate and access the metadata file. The metadata file (e.g., one of metadata files194,196) includes content location information (e.g., content location201,203respectively) regarding the location of a raw data file containing the requested digital content within an unformatted raw data area of the storage medium162. In certain implementations, the requested digital content is defined as the raw data file and vice versa. The content location information in the metadata file can include a starting point and ending point of the raw data file in the unformatted raw data area of the storage medium. In the illustrated embodiment, for example, the metadata file194can include content location information201that identifies a starting point210A and an ending point210B of a first digital content file200stored in the raw data area174of the storage medium162.

Based on the location of the digital content file or raw data file obtained from the associated metadata file, the digital content locator module142locates the digital content file in the raw data area174. The digital content read module144then reads the digital content file from the raw data area174, and the digital content processing module146performs an operation based on the digital content file. In one implementation, the digital content processing module146executes the digital content file. In another implementation, the digital content file can be a multimedia file and the digital content processing module146plays the multimedia file. The digital content read module144may temporarily or permanently store a copy of the digital content file in memory outside the raw data area174prior the digital content processing module146performing the operation based on the digital content file.

Referring back toFIG. 2, the digital content manager134includes a partition creation module149, partition recognition module150, storage location module152, write module154, and storage device interface module156. The various modules of the digital content manager134may communicate with each other to cooperatively provide the functionality of the digital content manager. Generally, the digital content manager134interfaces with the storage device136via the storage device interface module156to format the storage medium162and write data to the storage medium162.

The digital content manager134may also interface with the server20to receive digital content122over the data network40. Prior to, or after, receiving digital content122, the partition creation module149effectively divides the storage medium162into several sections. The storage medium162can be one or more data storage media, such as a magnetic recording medium of a hard disk drive, a disk of an optical drive, non-volatile memory, RAM, and/or the like. In the illustrated embodiment, the partition creation module149designates separate portions of the storage medium162for partition management blocks170, the partitioned area172, the raw data area174, and the main memory175. The partition management blocks170contain information or data regarding the partitions created in the partition area172. The information can include the types of file systems of each partition, as well as location information for metadata stored in the partitions. Accordingly, the partition creation module149is configured to create the partition management blocks170, and the write module154is configured to write information to the blocks associated with the location of metadata files within the partitions, and information regarding the partitions themselves after the partition and associated file systems are known or formatted.

The partition creation module149also is configured to partition the partitioned area172of the storage medium162into a plurality of partitions. Each partition occupies a designated section of the partitioned area172. The size of the designated section, or the amount of memory designated for each partition, is based on the type of file system associated with the partition. The partition creation module149partitions the partitioned area172into any number of partitions based on a desired number of file systems to be represented. In the illustrated embodiment, the partition creation module149creates at least first, second, third partitions176-180, and at least one partition182above three. After designating separate sections of the partitioned area172for the plurality of partitions, the partition creation module149formats each partition to have a different file system. For example, the partition creation module149may format the first partition176to have a first file system (e.g., a file allocation table file system), format the second partition178to have a second file system (e.g., universal disk format file system), and format the third partition180to have a third file system (e.g., ISO 9660 file system).

The partition recognition module150is configured to detect and recognize the partitions in the partition area172, including the different file systems associated with each partition. In certain implementations, the partition recognition module150also may detect and recognize the raw data area174and main memory175of the storage medium162.

The storage location module152is configured to determine where to store data in the storage medium162. The data includes a raw data file and associated metadata files that correspond with digital content122received from the server20. Based on the determination of the storage location module152, the write module154writes data onto the storage medium162. Generally, the storage location module152instructs the write module154to write raw data files to the raw data area174and write the locations of the raw data files in the raw data area to the main memory175. The storage location module154also instructs the write module154to write metadata files to the partitions in the partitioned area172. More specifically, for each raw data file written to the raw data area174, the write module154writes a corresponding metadata file in each of the partitions. For each partition, the write module154writes the metadata file to the partition according to the particular file system associated with the partition. The metadata file can contain any of various information about the associated raw data file. In some implementations, the metadata file includes the location (e.g., starting point and ending point) of the raw data file in the raw data area174. The location of the raw data file can be obtained from the main memory175. In certain implementations, after the metadata files are written to the partitions, the location of the raw data file stored in the main memory175is deleted.

The digital content manager134can also facilitate updates to the data stored on the storage medium162. Generally, when updated or modified digital content122is received, the storage location module152is configured to locate the raw data file (e.g., digital content) in the raw data area174, and the write module154is configured to replace or modify the raw data file. The storage location module152can also locate the metadata files associated with the original raw data file in the partitions, and the write module154may write the location of the metadata files in the main memory175. After the original raw data file is replaced by the modified raw data file or the original raw data file is modified by the write module154, the write module can write the location of the modified raw data file in the raw data area174to the main memory175. Then, the write module154can utilize the stored location in the main memory175of the metadata files to modify the metadata files in the partitions to reflect the modifications to the original raw data file.

The storage device136can include a storage control module160that controls the writing of data to and reading of data from the storage medium162based on requests from the digital content manager134and digital content player132, respectively. Generally, the storage control module160interfaces with the storage device interface modules148,156of the digital content player132and digital content manager134, respectively. In this manner, the storage medium162accommodates the compatibility of the storage device136with digital content players that recognize any number of file systems without unduly increasing costs and/or wasting storage space.

Referring toFIG. 6, one embodiment of a method300for managing files is shown. The method300can be associated with requesting and playing a raw data file previously stored in a storage medium. In one implementation, the method300can be executed by the file management system and associated modules and devices described and shown above. The method300starts by receiving a request to play digital content at302. The digital content can be a digital content file or raw data file. The method300also recognizes partitions in a storage medium at304and treats the recognized partitions as separate file systems at306. Also, the method300parses a partition associated with a compatible file system at308. The compatible file system can be a file system that is recognized by or compatible with a device or player that requested to play the digital content at302. The partition is parsed at308in order to locate metadata (e.g., a metadata file) within the partition that corresponds with the requested digital content at310. The metadata can be accessed or opened to obtain the location within a raw data area of the storage medium of the requested digital content at312. The method300then includes locating the requested digital content within the raw data area based on the location obtained from the metadata, and reading the requested digital content from its location within the raw data area at314. Finally, the method includes playing the digital content read from the raw data area at316, and the method ends. In some implementations, playing the digital content can include executing, running, or performing some functionality associated with the digital content.

Referring toFIG. 7, one embodiment of a method400for managing files is shown. The method400can be associated with receiving and storing digital content files or raw data files in a storage medium. In one implementation, the method400can be executed by the file management system and associated modules and devices described and shown above. The method400starts by receiving digital content at402, such as from a server or other provider of digital content. Additionally, the method400creates at least one partition management block in a storage medium at404, and creates partitions in the storage medium at406. The method400then writes the received digital content, which can be a digital content file or raw data file, into a raw data area of the storage medium at408. In certain implementations, the method400writes the location of the digital content (e.g., location of the digital content in raw data area) to a main memory separate from the raw data area and partitions at410. The main memory can be a designated portion of the storage medium, or other local or remote storage device. The method400also includes formatting each partition as a different file system at412. After the location of the digital content is written to the main memory at410, the method400can include writing metadata containing the location of the digital content to each of the partitions at414, and the method ends. Writing the metadata to the partitions at414may include updating the partition management blocks with location information of the metadata in the respective partitions, as well as writing the metadata to locations within the partitions according to the organizational and hierarchal methodology of the respective file systems.

Referring toFIG. 8, one embodiment of a method500for managing files is shown. The method500can be associated with receiving updated raw data files or updates for raw data files, and replacing or updating previously stored raw data files. In one implementation, the method500can be executed by the file management system and associated modules and devices described and shown above. The method500starts by receiving a request to modify a digital content or raw data file at502. The request can include the modifications to the digital content file or a modified digital content file itself. The method500then locates the metadata in a single partition, or multiple partitions, of a storage medium at504and writes the location(s) (e.g., file path) of the metadata in a main memory at506. Then, the method500writes the modified or updated digital content received at502to a raw data area of the storage medium at508, and writes the location of the updated digital content in the raw data area to the main memory at510. Additionally, the method500modifies the metadata corresponding with the updated digital content in each of a plurality of partitions to reflect the new location of the updated digital content in the raw data area at512based on the location of the modified digital content written to the main memory, and the method ends.

The computer readable medium may also be a computer readable signal medium. A computer readable signal medium may include a propagated data signal with program code embodied therein, for example, in baseband or as part of a carrier wave. Such a propagated signal may take any of a variety of forms, including, but not limited to, electrical, electro-magnetic, magnetic, optical, or any suitable combination thereof. A computer readable signal medium may be any computer readable medium that is not a computer readable storage medium and that can communicate, propagate, or transport program code for use by or in connection with an instruction execution system, apparatus, or device. Program code embodied on a computer readable signal medium may be transmitted using any appropriate medium, including but not limited to wire-line, optical fiber, Radio Frequency (RF), or the like, or any suitable combination of the foregoing

The computer program product may be shared, simultaneously serving multiple customers in a flexible, automated fashion. The computer program product may be standardized, requiring little customization and scalable, providing capacity on demand in a pay-as-you-go model.

The computer program product may be stored on a shared file system accessible from one or more servers. The computer program product may be executed via transactions that contain data and server processing requests that use Central Processor Unit (CPU) units on the accessed server. CPU units may be units of time such as minutes, seconds, hours on the central processor of the server. Additionally the accessed server may make requests of other servers that require CPU units. CPU units are an example that represents but one measurement of use. Other measurements of use include but are not limited to network bandwidth, memory usage, storage usage, packet transfers, complete transactions etc.

The terms “including,” “comprising,” “having,” and variations thereof mean “including but not limited to” unless expressly specified otherwise. An enumerated listing of items does not imply that any or all of the items are mutually exclusive and/or mutually inclusive, unless expressly specified otherwise. The terms “a,” “an,” and “the” also refer to “one or more” unless expressly specified otherwise.