Ferret File System/v0.1/process

From Woozle Writes Code
< Ferret File System‎ | v0.1
Revision as of 23:23, 27 February 2016 by Woozle (talk | contribs) (imperative tense; more instructions)
Jump to navigation Jump to search

Scanning a Volume

When given a volume to scan, here's what happens:

  • For every entry record in that volume:
    • Clear the "didFind" flag. (These get set as entries are found during the scan.)
    • Set the "didSeek" flag. (Indicates entries that existed before this scan.)
  • Read the directory at the volume's URL.
  • For each item found, do "Each Entry" below. (This maps the volume.)

Each Entry

  • Look for a matching entry.
  • If entry does not exist, create it.
  • Log that the entry was found, and whether it was new or existing.
  • If it was an existing entry, log any changes in the specs (timestamps, size).
  • If Entry is a File, do "Each File" below.
  • If Entry is a Folder, do "Each Folder" below.

Each File

  • Check the firev to see if it matches.
    • If not, create a new firev and updates the file's ID_Firev.
    • Log whether the firev has changed or not.

Each Folder

  • If folder is new:
    • Check name against text blacklist.
    • If found:
      • Mark it "noScan" when creating.
      • Add a note which includes the matching blacklist line.
  • If "noScan" is set:
    • log that it was not scanned ("noScan" is currently the only possible reason for this).
  • ...else...
    • do "Each Entry" above for each entry in the folder's directory.