System and method for performing a multi-file transfer operation
First Claim
1. A method of performing a multi-file transfer of at least two files to a random access storage media using a computer where each file includes file contents and has file location information, comprising the steps of:
- (a) storing the file contents of each file in a contents buffer comprising a segmented data buffer, and comprising the step of;
(a1) storing the file contents received from a source media of a data file in the data buffer;
(b) storing, separately from the contents buffer, the file location information for the at least two files in an information buffer comprising a segmented directory header buffer, a segmented header buffer and a segmented directory buffer, and comprising the steps of;
(b1) producing a file directory entry from the file description information and storing the file directory entry in the directory buffer;
(b2) producing a file header from the file description information and storing the file header in the header buffer; and
(b3) producing a directory header from the file description information and storing the directory header in the directory header buffer; and
(c) writing, to the storage media, a portion of the contents of the contents buffer when the contents buffer is a predetermined percentage full and separately writing a portion of the contents of the information buffer to the storage media, including the file location information of the at least two files, when the information buffer is the predetermined percentage full, and comprising the steps of;
(c1) separately writing the contents of a full segment of the data, directory, header and directory header buffers to the random access storage media; and
(c2) indicating on the storage media which portions of the storage media have been allocated; and
(d) storing the file description information in a file description buffer.
7 Assignments
0 Petitions
Accused Products
Abstract
The present invention is a system and method which follows a directory tree of a random access disk 20 to obtain file location information and the contents for multiple files. For each file found an entry is created on a file description ring 90 and the file location information is stored in the entry. An insert pointer indicates the next available entry on the ring 90. The system then stores the different type location information (for example file headers, directories and directory headers are different types) for each of the files in corresponding segmented ring buffers 172, 176 and 192 dedicated to storing information of only a single type. The file content is also stored in a dedicated segmented file content ring buffer 132. Each time a ring is updated with information for a file, a corresponding operation pointer (96, 100 and 102) for the ring 90 is advanced. When a ring segment is full, the system transfers the segment to a corresponding location on a destination disk 24 and updates a file allocation list ring 162. The writing of file contents from ring 132 advances a write operation pointer 98. When all files have been written the file allocation list ring 162 is written out to the disk 24. The buffering of the different types of information until a ring segment is full reduces the number of write operations and, not only enhances source read out speed since the read operation does not have to wait for the write operation to occur before the next read operation can start because the data read is stored in the segmented buffer rings, but also enhances write speed by writing segments and increases drive life expectancy by reducing mechanical motion.
-
Citations
8 Claims
-
1. A method of performing a multi-file transfer of at least two files to a random access storage media using a computer where each file includes file contents and has file location information, comprising the steps of:
-
(a) storing the file contents of each file in a contents buffer comprising a segmented data buffer, and comprising the step of; (a1) storing the file contents received from a source media of a data file in the data buffer; (b) storing, separately from the contents buffer, the file location information for the at least two files in an information buffer comprising a segmented directory header buffer, a segmented header buffer and a segmented directory buffer, and comprising the steps of; (b1) producing a file directory entry from the file description information and storing the file directory entry in the directory buffer; (b2) producing a file header from the file description information and storing the file header in the header buffer; and (b3) producing a directory header from the file description information and storing the directory header in the directory header buffer; and (c) writing, to the storage media, a portion of the contents of the contents buffer when the contents buffer is a predetermined percentage full and separately writing a portion of the contents of the information buffer to the storage media, including the file location information of the at least two files, when the information buffer is the predetermined percentage full, and comprising the steps of; (c1) separately writing the contents of a full segment of the data, directory, header and directory header buffers to the random access storage media; and (c2) indicating on the storage media which portions of the storage media have been allocated; and (d) storing the file description information in a file description buffer. - View Dependent Claims (2, 3)
-
-
4. A method of performing a multifile transfer from a random access non-removable storage media to a removable erasable optical disk using a computer where each file includes file contents and a directory listing the file, said method comprising the steps of:
-
(a) locating the directories and files on the storage media, creating data file and directory file entries on a file description ring buffer and advancing an insert pointer for the file description ring buffer; (b) retrieving file contents for each data file entry, storing, separately from the file description ring buffer, the file contents on a segmented file contents ring buffer and advancing a read pointer for the file description ring buffer when the insert pointer does not equal the read pointer; (c) creating a file header for each data file entry on the description ring buffer, storing, separately from the file description ring buffer and the file contents ring buffer, the file header on a segmented file header ring buffer and advancing a file header pointer for the file description ring buffer when the file header pointer does not equal a write pointer; (d) creating a directory entry for each directory file entry and each data file entry on the description ring buffer, storing, separately from the file description ring buffer, the file contents ring buffer, and the file header ring buffer, the directory entry on a segmented directory ring buffer and advancing a directory pointer for the file description ring buffer when the directory pointer does not equal the file header pointer; (e) creating a directory header for each directory file entry on the description ring buffer, storing, separately from the file description ring buffer, the file contents ring buffer, the file header ring buffer, and the directory ring buffer, the directory header on a segmented directory header ring buffer and advancing the director pointer for the description ring buffer when the directory pointer does not equal the insert pointer; (f) writing the contents of a segment of one of the segmented ring buffers to a corresponding region on the disk when a segment is full, and indicating that the written portion of the disk is in use on all allocation control list ring when the contents of the file contents ring buffer or the directory ring buffer are written; (g) advancing the write pointer for the description ring buffer when step (f) writes from the file contents; and (h) writing the contents of the allocation control list ring to a corresponding region on the disk.
-
-
5. An apparatus for performing a multi-file transfer, comprising:
-
a random access source storage media storing source files and source file location information; a random access destination storage media storing destination files and destination file location information; and a computer connected to said source and destination storage media, said computer including; search means for searching the source storage media for files to be transferred and storing file description information for each file in a file description buffer; file read means for reading contents of a file from the source storage media and storing, separately from the file description buffer, the file contents in a data buffer; file location means for creating file location information from the file description information and storing, separately from the file description buffer and the data buffer, the location information in a location information buffer; and write means for writing a portion of the contents of the data buffer to the destination storage media when the data buffer is a predetermined percentage full and writing a portion of the contents of the information buffer to the destination storage media when the information buffer is a predetermined percentage full.
-
-
6. An apparatus for performing a multi-file transfer of at least two files, comprising:
-
a random access source storage media storing source files and source file location information; a random access destination storage media storing destination files and destination file location information; and a computer connected to said source and destination storage media, said computer including; search means for searching the source storage media for the at least two files to be transferred and storing file description information for each file in a file description buffer; file read means for reading contents of the at least tow files from the source storage media and storing, separately from the file description buffer, the file contents in a data buffer; file location means for creating file location information from the file description information and storing, separately from the file description buffer and the date buffer, the location information in a location information buffer; write means for writing a portion of the contents of the data buffer to the destination storage media when the data buffer is a predetermined percentage full and writing a portion of the contents of the information buffer including the file location information for the at least two files to the destination storage media when the information buffer is a predetermined percentage full, and said data buffer and sad location information buffer each storing data units in said computer and upon which operations are performed, and said file data and information buffers comprising corresponding ring buffers storing the data units; and at least three operation pointers each designating the address of a data unit stored in one of said ring buffers upon which an operation is being performed. - View Dependent Claims (7, 8)
-
Specification