US5664178A
Expired / Lapsed
US
⏱️ 0.0 years remaining
Method and system for organizing internal structure of a file
Assignee: Microsoft Technology Licensing LLC
•
Filing: 1995-06-07
•
Granted: 1997-09-02
•
Expires: 2015-06-07
Abstract
Abstract A method and system for storing data in a file is provided. The present invention provides for data to be organized within a compound document as a file bundle. A file bundle is a file system file that contains sub-files, which may be organized hierarchically. The data within a file bundle file is preferably stored in a format defined by the program that generates the data. The program that generates the data can open the file bundle created by another program and directly access the data within the file bundle file.
Inventors
- 👤 Steven J. Sinofsky
Bibliographic Details
Application Number
—
Jurisdiction
US
Data Source
google_patents
Last Synchronized
2026-10-28 21:24
CPC Classifications
G; G06; G06F; G06F17/00; G06F17/40; G06F16/00; G06F16/10; G06F16/11; G06F16/116
Claims Analysis
Total Claims: 47
Claim 1
Independent Claim
146 words
A method in a computer system having a processor, the method for storing data within a compound document having data stored in a plurality of processor, the computer system having a file system for organizing data into files of the file system that executes on the processor, the method comprising the steps of: creating a file of the file system; storing a directory structure within the created file, the directory structure for pointing to sub-files contained within the created file; for each computer program creating a sub-file within the created file by allocating a location for the sub-file and by storing a name of the sub-file and the allocated location in the directory structure; and storing data in the native format of the computer program in the created sub-file at the allocated location wherein the data in the native format is accessible by the computer program.
Claim 2
Independent Claim
146 words
A method in a computer system having a processor, the method for storing data within a compound document having data stored in a plurality of processor, the computer system having a file system for organizing data into files of the file system that executes on the processor, the method comprising the steps of: creating a file of the file system; storing a directory structure within the created file, the directory structure for pointing to sub-files contained within the created file; for each computer program creating a sub-file within the created file by allocating a location for the sub-file and by storing a name of the sub-file and the allocated location in the directory structure; and storing data in the native format of the computer program in the created sub-file at the allocated location wherein the data in the native format is accessible by the computer program.
Claim 3
Independent Claim
134 words
A method in a computer system having a processor, the method for accessing data within a file bundle, the file bundle being a file system file accessed using a file system that executes on the processor, the file bundle having a directory and a plurality of file bundle files, the method comprising the steps of: under control of a first application executing on the processor, opening the file bundle; identifying a file bundle file that contains data generated by a second application program; and requesting the second application program to access the data in the identified file bundle file; and under control of the second application executing on the processor, opening the file bundle; opening the identified file bundle file within the opened file bundle; and accessing data within the opened file bundle file.
Claim 4
Independent Claim
134 words
A method in a computer system having a processor, the method for accessing data within a file bundle, the file bundle being a file system file accessed using a file system that executes on the processor, the file bundle having a directory and a plurality of file bundle files, the method comprising the steps of: under control of a first application executing on the processor, opening the file bundle; identifying a file bundle file that contains data generated by a second application program; and requesting the second application program to access the data in the identified file bundle file; and under control of the second application executing on the processor, opening the file bundle; opening the identified file bundle file within the opened file bundle; and accessing data within the opened file bundle file.
Claim 5
Independent Claim
108 words
A method in a computer system having a processor, the method for storing data generated by a plurality of applications within a file system file accessed using a file system that executes on the processor, the method comprising the steps of: creating a file system file; storing a directory structure within the created file system file; creating a sub-file within the created file system file for storing data generated by an application that executes on the processor; requesting that the application that generates the data to store the data in the created sub-file; and under control of the requested application, storing the generated data in the created sub-file.
Claim 6
Independent Claim
108 words
A method in a computer system having a processor, the method for storing data generated by a plurality of applications within a file system file accessed using a file system that executes on the processor, the method comprising the steps of: creating a file system file; storing a directory structure within the created file system file; creating a sub-file within the created file system file for storing data generated by an application that executes on the processor; requesting that the application that generates the data to store the data in the created sub-file; and under control of the requested application, storing the generated data in the created sub-file.
Claim 7
Independent Claim
185 words
A method in a computer system having a processor, the method for storing a plurality of sub-flies within a file system file of a file system, the file system for providing access to the file system file and being executed on the processor, each sub-file having data and a name, the method comprising the computer-implemented steps of: under control of an application program that executes on the processor, requesting the file system to create the file system file; requesting the file system to store data representing a directory structure within the file system file, the directory structure for mapping the name of each sub-file to a location within the file system file at which the sub-file is stored; and for each of the sub-flies, identifying a location within the file system file in which to store the sub-file; requesting the file system to store data of the sub-file at the identified location within the file system file; and requesting the file system to store data that maps the name of the sub-file to the identified location in the directory structure within the file system file.
Claim 8
Independent Claim
185 words
A method in a computer system having a processor, the method for storing a plurality of sub-flies within a file system file of a file system, the file system for providing access to the file system file and being executed on the processor, each sub-file having data and a name, the method comprising the computer-implemented steps of: under control of an application program that executes on the processor, requesting the file system to create the file system file; requesting the file system to store data representing a directory structure within the file system file, the directory structure for mapping the name of each sub-file to a location within the file system file at which the sub-file is stored; and for each of the sub-flies, identifying a location within the file system file in which to store the sub-file; requesting the file system to store data of the sub-file at the identified location within the file system file; and requesting the file system to store data that maps the name of the sub-file to the identified location in the directory structure within the file system file.
Claim 9
Dependent Claim
49 words
The method of claim 4 including the steps of: under control of the file system, in response to the request to create the file system file, creating the file system file; and in response to the requests to store data, storing the requested data in the file system file.
Claim 10
Dependent Claim
97 words
The method of claim 4 including the steps of: under control of a second application program that executes on the processor, identifying a location within the file system file in which to store a sub-file of the second application program; requesting the file system to store data of the sub-file of the second application program at the identified location within the file system file; and requesting the file system to store data that maps the name of the sub-file of the second application program to the identified location in the directory structure within the file system file.
Claim 11
Dependent Claim
26 words
The method of claim 6 wherein the data of the sub-file of the second application program is in a native format of the second application program.
Claim 12
Dependent Claim
58 words
The method of claim 4 wherein one of the plurality of sub-files contains a plurality of sub-sub-files and contains a sub-file directory structure, each sub-sub-file having data and a name, the sub-file directory structure for mapping the name of each sub-sub-file to a location within the one of the plurality of sub-files at which the sub-sub-file is stored.
Claim 13
Dependent Claim
27 words
The method of claim 4 wherein the file system has a directory structure that is similar in structure to the directory structure within the file system file.
Claim 14
Independent Claim
208 words
A method in a computer system having a processor, the method for creating a sub-file within a file bundle, the file bundle being a file system file accessible by a file system that executes on the processor, the file system having a file system implementation for a create function, the create function for creating a file system file of the file system, the computer system having a child computer program that executes on the processor and has an invocation of the create function for creating a file system file, the method comprising the computer-implemented steps of: providing a file bundle implementation of the create function, the file bundle implementation for creating a sub-file within a file bundle; starting execution of a parent computer program on the processor; under control of the parent computer program, creating the file bundle file using the file system implementation of the create function; starting execution of the child computer program wherein the invocation of the create function is linked to the file bundle implementation of the create function; and under control of the child computer program, involving the create function wherein the linked file bundle implementation of the create function is executed to effect creation of the sub-file within the file bundle file.
Claim 15
Independent Claim
208 words
A method in a computer system having a processor, the method for creating a sub-file within a file bundle, the file bundle being a file system file accessible by a file system that executes on the processor, the file system having a file system implementation for a create function, the create function for creating a file system file of the file system, the computer system having a child computer program that executes on the processor and has an invocation of the create function for creating a file system file, the method comprising the computer-implemented steps of: providing a file bundle implementation of the create function, the file bundle implementation for creating a sub-file within a file bundle; starting execution of a parent computer program on the processor; under control of the parent computer program, creating the file bundle file using the file system implementation of the create function; starting execution of the child computer program wherein the invocation of the create function is linked to the file bundle implementation of the create function; and under control of the child computer program, involving the create function wherein the linked file bundle implementation of the create function is executed to effect creation of the sub-file within the file bundle file.
Claim 16
Dependent Claim
83 words
The method of claim 10 wherein the sub-file has data and a name, wherein the file bundle includes a directory structure for mapping the name of the sub-file to a location within the file bundle at which to store the data of the sub-file, and wherein during invocation of the file bundle implementation of the create function, storing in the directory structure of the file bundle the name of the sub-file and the location at which to store the data of the sub-file.
Claim 17
Dependent Claim
21 words
The method of claim 10 wherein the data of the sub-file is in a native format of the child computer program.
Claim 18
Dependent Claim
30 words
The method of claim 10 wherein the sub-file includes a directory structure for mapping each name of a plurality of sub-sub-files of the sub-file to a location within the sub-file.
Claim 19
Dependent Claim
28 words
The method of claim 10 wherein the file system implementation of the create function and the file bundle implementation of the create function use parameters that are identical.
Claim 20
Independent Claim
232 words
A method in a computer system for providing a plurality of application program data streams for accessing a single file system data stream, the computer system having a single data stream access mechanism for accessing the file system data stream, the single data stream access mechanism having a file system file pointer indicating a position in the file system data stream, the single data stream access mechanism for accessing data of the file system data stream at the position of the file system file pointer, the method comprising the computer-implemented steps of: for each of the plurality of application program data streams, receiving a request to set the file system file pointer to a position in the file system data stream; in response to receiving the request to set the file system file pointer, setting an application file pointer for the application program data stream to the requested position; receiving a request to access the file system data stream; and in response to receiving the request to access the file system data stream, retrieving the application program file pointer for the application program data stream; setting the file system file pointer to the retrieved application program file pointer; and accessing the file system data stream using the single data stream access mechanism whereby data is accessed at the position indicated by the application program file pointer of the application program data stream.
Claim 21
Independent Claim
232 words
A method in a computer system for providing a plurality of application program data streams for accessing a single file system data stream, the computer system having a single data stream access mechanism for accessing the file system data stream, the single data stream access mechanism having a file system file pointer indicating a position in the file system data stream, the single data stream access mechanism for accessing data of the file system data stream at the position of the file system file pointer, the method comprising the computer-implemented steps of: for each of the plurality of application program data streams, receiving a request to set the file system file pointer to a position in the file system data stream; in response to receiving the request to set the file system file pointer, setting an application file pointer for the application program data stream to the requested position; receiving a request to access the file system data stream; and in response to receiving the request to access the file system data stream, retrieving the application program file pointer for the application program data stream; setting the file system file pointer to the retrieved application program file pointer; and accessing the file system data stream using the single data stream access mechanism whereby data is accessed at the position indicated by the application program file pointer of the application program data stream.
Claim 22
Dependent Claim
20 words
The method of claim 15, further including the step of accessing data in a native format of each application program.
Claim 23
Dependent Claim
18 words
The method of claim 15 wherein the file system data stream is stored on a data storage device.
Claim 24
Independent Claim
200 words
A method in a computer system of accessing data in a file bundle, the computer system having a processor and a file system that executes on the processor, the file bundle being a file of the file system, the file bundle containing a directory structure and a plurality of sub-files, the directory structure for mapping identifiers of each sub-file to locations within the file bundle at which the sub-file is contained, the method comprising the steps of: under control of first application program executing on the processor, opening the file bundle by invoking an open operation provided by the file system; identifying within the opened file bundle a sub-file that contains data generated by a second application program; and requesting the second application program to access the data in the identified sub-file; and under control of the second application program executing on the processor, opening the file bundle by invoking the open operation provided by the file system; opening the identified sub-file by invoking a sub-file open operation wherein the sub-file open operation accesses the directory structure of the file bundle to determine a location of the identified sub-file within the file bundle; and accessing data of the opened sub-file.
Claim 25
Independent Claim
200 words
A method in a computer system of accessing data in a file bundle, the computer system having a processor and a file system that executes on the processor, the file bundle being a file of the file system, the file bundle containing a directory structure and a plurality of sub-files, the directory structure for mapping identifiers of each sub-file to locations within the file bundle at which the sub-file is contained, the method comprising the steps of: under control of first application program executing on the processor, opening the file bundle by invoking an open operation provided by the file system; identifying within the opened file bundle a sub-file that contains data generated by a second application program; and requesting the second application program to access the data in the identified sub-file; and under control of the second application program executing on the processor, opening the file bundle by invoking the open operation provided by the file system; opening the identified sub-file by invoking a sub-file open operation wherein the sub-file open operation accesses the directory structure of the file bundle to determine a location of the identified sub-file within the file bundle; and accessing data of the opened sub-file.
Claim 26
Dependent Claim
24 words
The method of claim 18 wherein the data generated by the second application program is in a native format of the second application program.
Claim 27
Dependent Claim
110 words
A computer-readable memory for a computer system having a processor, the computer system having a file system that executes on the processor, the memory containing a file of the file system, the file comprising: a plurality of sub-files, each sub-file having data and an identifier and being stored at a location within the file, the data of each sub-file being generated by an application program that executes on the processor and being in a native format of the generating application program; and a directory structure for mapping the identifier of each sub-file to the location of the sub-file whereby the generating application program for each sub-file can access the sub-file.
Claim 28
Dependent Claim
110 words
A computer-readable memory for a computer system having a processor, the computer system having a file system that executes on the processor, the memory containing a file of the file system, the file comprising: a plurality of sub-files, each sub-file having data and an identifier and being stored at a location within the file, the data of each sub-file being generated by an application program that executes on the processor and being in a native format of the generating application program; and a directory structure for mapping the identifier of each sub-file to the location of the sub-file whereby the generating application program for each sub-file can access the sub-file.
Claim 29
Dependent Claim
34 words
The method of claim 3 wherein the step of storing the generated data in the created sub-file includes the step of increasing the size of the file system file to accommodate the generated data.
Claim 30
Dependent Claim
107 words
A computer-readable medium whose contents cause a computer system having a processor to store data generated by a plurality of applications within a file system file using a file system that executes on the processor by performing the steps of: creating a file system file; storing a directory structure within the created file system file; creating a sub-file within the created file system file for storing data generated by an application that executes on the processor; requesting that the application that generates the data to store the data in the created sub-file; and under control of the requested application, storing the generated data in the created sub-file.
Claim 31
Dependent Claim
107 words
A computer-readable medium whose contents cause a computer system having a processor to store data generated by a plurality of applications within a file system file using a file system that executes on the processor by performing the steps of: creating a file system file; storing a directory structure within the created file system file; creating a sub-file within the created file system file for storing data generated by an application that executes on the processor; requesting that the application that generates the data to store the data in the created sub-file; and under control of the requested application, storing the generated data in the created sub-file.
Claim 32
Dependent Claim
233 words
A computer-readable medium whose contents cause a computer system to provide a plurality of application program data streams for accessing a single file system data stream, the computer system having a single data stream access mechanism for accessing the file system data stream, the single data stream access mechanism having a file system file pointer indicating a position in the file system data stream, the single data stream access mechanism for accessing data of the file system data stream at the position of the file system file pointer, by performing the steps of: for each of the plurality of application program data streams, receiving a request to set the file system file pointer to a position in the file system data stream; in response to receiving the request to set the file system file pointer, setting an application file pointer for the application program data stream to the requested position; receiving a request to access the file system data stream; and in response to receiving the request to access the file system data stream, retrieving the application program file pointer for the application program data stream; setting the file system file pointer to the retrieved application program file pointer; and accessing the file system data stream using the single data stream access mechanism whereby data is accessed at the position indicated by the application program file pointer of the application program data stream.
Claim 33
Dependent Claim
233 words
A computer-readable medium whose contents cause a computer system to provide a plurality of application program data streams for accessing a single file system data stream, the computer system having a single data stream access mechanism for accessing the file system data stream, the single data stream access mechanism having a file system file pointer indicating a position in the file system data stream, the single data stream access mechanism for accessing data of the file system data stream at the position of the file system file pointer, by performing the steps of: for each of the plurality of application program data streams, receiving a request to set the file system file pointer to a position in the file system data stream; in response to receiving the request to set the file system file pointer, setting an application file pointer for the application program data stream to the requested position; receiving a request to access the file system data stream; and in response to receiving the request to access the file system data stream, retrieving the application program file pointer for the application program data stream; setting the file system file pointer to the retrieved application program file pointer; and accessing the file system data stream using the single data stream access mechanism whereby data is accessed at the position indicated by the application program file pointer of the application program data stream.
Claim 34
Independent Claim
126 words
A method in a computer system for manipulating files in a file bundle and the file bundle as a whole both under the control of an application program, the method comprising the steps of: under the control of the application program, issuing a command to manipulate a single file within the file bundle; under the control of a file system capable of manipulating files within the file bundle, manipulating the file within the file bundle in accordance with the issued command; under the control of the application program, issuing a command to manipulate the file bundle as a whole; and under the control of a file system capable of manipulating the file bundle as a whole, manipulating the file bundle in accordance with the issued command.
Claim 35
Independent Claim
126 words
A method in a computer system for manipulating files in a file bundle and the file bundle as a whole both under the control of an application program, the method comprising the steps of: under the control of the application program, issuing a command to manipulate a single file within the file bundle; under the control of a file system capable of manipulating files within the file bundle, manipulating the file within the file bundle in accordance with the issued command; under the control of the application program, issuing a command to manipulate the file bundle as a whole; and under the control of a file system capable of manipulating the file bundle as a whole, manipulating the file bundle in accordance with the issued command.
Claim 36
Dependent Claim
21 words
The method of claim 24 wherein the step of manipulating the file bundle includes the step of deleting the file bundle.
Claim 37
Dependent Claim
21 words
The method of claim 24 wherein the step of manipulating the file bundle includes the step of renaming the file bundle.
Claim 38
Dependent Claim
21 words
The method of claim 24 wherein the step of manipulating the file bundle includes the step of copying the file bundle.
Claim 39
Dependent Claim
21 words
The method of claim 24 wherein the step of manipulating the file bundle includes the step of moving the file bundle.
Claim 40
Dependent Claim
30 words
The method of claim 24 wherein the step of manipulating the file within the file bundle includes the step of changing the contents of the file within the file bundle.
Claim 41
Dependent Claim
128 words
A computer-readable medium whose contents cause a computer system to manipulate files in a file bundle and the file bundle as a whole both under the control of an application program by performing the steps of: under the control of the application program, issuing a command to manipulate a single file within the file bundle; under the control of a file system capable of manipulating files within the file bundle, manipulating the file within the file bundle in accordance with the issued command; under the control of the application program, issuing a command to manipulate the file bundle as a whole; and under the control of a file system capable of manipulating the file bundle as a whole, manipulating the file bundle in accordance with the issued command.
Claim 42
Dependent Claim
128 words
A computer-readable medium whose contents cause a computer system to manipulate files in a file bundle and the file bundle as a whole both under the control of an application program by performing the steps of: under the control of the application program, issuing a command to manipulate a single file within the file bundle; under the control of a file system capable of manipulating files within the file bundle, manipulating the file within the file bundle in accordance with the issued command; under the control of the application program, issuing a command to manipulate the file bundle as a whole; and under the control of a file system capable of manipulating the file bundle as a whole, manipulating the file bundle in accordance with the issued command.
Claim 43
Dependent Claim
22 words
The computer-readable medium of claim 30 wherein the step of manipulating the file bundle includes the step of deleting the file bundle.
Claim 44
Dependent Claim
22 words
The computer-readable medium of claim 30 wherein the step of manipulating the file bundle includes the step of renaming the file bundle.
Claim 45
Dependent Claim
22 words
The computer-readable medium of claim 30 wherein the step of manipulating the file bundle includes the step of copying the file bundle.
Claim 46
Dependent Claim
23 words
The computer readable medium of claim 30 wherein the step of manipulating the file bundle includes the step of moving the file bundle.
Claim 47
Dependent Claim
31 words
The computer-readable medium of claim 30 wherein the step of manipulating the file within the file bundle includes the step of changing the contents of the file within the file bundle.
References Cited (Backward Citations)
US4899136A
Cited
US5089956A
Cited
US5101345A
Cited
US5179718A
Cited
US5162992A
Cited
US5237679A
Cited
US5204947A
Cited
USPTO Annuity & Maintenance Windows
| Annuity Stage | Window Opens | Payment Deadline | Surcharge Period Until | Estimated Fee | Status |
|---|---|---|---|---|---|
| 3.5 Years (Year 4) | 2000-09-01 | 2001-03-03 | 2001-09-02 | $2000.00 | Window Closed / Lapsed |
| 7.5 Years (Year 8) | 2004-09-01 | 2005-03-03 | 2005-09-02 | $3760.00 | Window Closed / Lapsed |
| 11.5 Years (Year 12) | 2008-09-01 | 2009-03-03 | 2009-09-02 | $7700.00 | Window Closed / Lapsed |