file-date-organizer

0.9.0 • Public • Published

File Date Organizer for NodeJS

The following document applies to the command-line usage of file-date-organizer. For usage directly in a Node application, please see the alternate README located here.

Purpose

Locate files by date and move them into a date-based folder structure (ie .../YYYY/MM/dd/hh, etc.). Dates are extracted from the file name (ie Screen Shot 2020-05-28 at 10.16.59 AM.png) or the file properties (created date, modified date, etc.).

More info on why I created this is on my blog: https://fredlackey.com

Installation

npm i -g file-date-organizer

Usage

Exatract then date from the name of the file ...

file-date-organizer \
  --source "/Users/flackey/Documents/Screenshots" \
  --target "/Volumes/MPHD01/Screenshots" \
  --use-name \
  --move \
  --recursive \
  --overwrite

... or, use a file property, such as the creation date ...

file-date-organizer \
  --source "/Users/flackey/Documents/Screenshots" \
  --target "/Volumes/MPHD01/Screenshots" \
  --use-created \
  --move \
  --recursive \
  --overwrite

When I process images from my camera, I use both the --use-name switch as well as --use-created. This ensures files without a date in the name still get moved properly.

file-date-organizer \
  --source '/Users/flackey/pCloud Drive/Automatic Upload/' \
  --target /Volumes/MPHD01/Multimedia/Photos/ \
  --move \
  --use-name \
  --use-created \
  --recursive \
  --overwrite \
  --console

The addition of the --console switch adds an output which is helpful for long-running operations...

Console Output

Important:
Combining --use-name and any other --use* option will cuase --use-name to be leveraged first. If a valid name can be found within the name then the properties of the file will be ignored.

Parameters

Name Description Type Default
source Source Directory string (path)
target Desination Directory string (path)
recursive Locate files recursively boolean true
overwrite Overwrite existing target files boolean false
ignore Ignore existing target files boolean false
copy Copy the files boolean false
move Move the files boolean false
use-name Extract date from file name boolean false
use-created Use created date for target folder name boolean false
use-modified Use modified date for target folder name boolean false
add-type Target folder name includes file type boolean false
add-year Target folder name includes file year boolean true
add-month Target folder name includes file month boolean true
add-day Target folder name includes file day boolean true
add-hour Target folder name includes file hour boolean false
add-minute Target folder name includes file minute boolean false
add-second Target folder name includes file second boolean false
console Log activity to console boolean false
limit Number of files to process number
allow-future Allow file names with date in future boolean false

Contact

Please feel free to contact me directly with any questions, comments, or enhancement requests:

Fred Lackey
fred.lackey@gmail.com
http://fredlackey.com

Readme

Keywords

Package Sidebar

Install

npm i file-date-organizer

Weekly Downloads

10

Version

0.9.0

License

Apache-2.0

Unpacked Size

651 kB

Total Files

67

Last publish

Collaborators

  • fredlackey