## OLD
##
# print.datestamped.filenames <- function(f, sort=TRUE, nrows=200, ..., dateExtractFunc=dateFromSpotifyFile) {
#   dateExtractFunc <- match.fun(dateExtractFunc)
#   date <- dateExtractFunc(f)
#   fnames <- basename(f)
#   folder <- dirname(f)
#   folder.crop <- folder
#   folder.crop <- gsub(regOr(escapeRegEx(c(data.p(),   path.expand(data.p())))),   "[dataDir]",   folder.crop)
#   folder.crop <- gsub(regOr(escapeRegEx(c(ingest.p(), path.expand(ingest.p())))), "[ingestDir]", folder.crop)
#   folder.crop <- gsub(regOr(escapeRegEx(c(out.p(),    path.expand(out.p())))),    "[outDir]",    folder.crop)
#   DT.out <- data.table(date, folder=folder.crop, fnames)
#   catn("\t\t--=[A vector of class datestamped.filenames with", length(f), "files]=--")
#   print(DT.out[if(sort) order(gsub("[0-9]", "", fnames), date) else TRUE], nrows=nrows, ...)
#   setnames(DT.out, "folder", "folder.crop")
#   return(invisible(DT.out[, `:=`(folder=folder, full.path=f)]))
# }

print.datestamped.filenames <- function(f, sort=TRUE, nrows=200, ..., dateExtractFunc=dateFromSpotifyFile) {
  DT.out <- as.data.table.datestamped.filenames(f)
  DT.out[, c("folder", "full.path") := NULL] %>% setnames("folder.crop", "folder")
  catn("\t\t--=[A vector of class datestamped.filenames with", length(f), "files]=--")
  print(DT.out[if(sort) order(gsub("[0-9]", "", fnames), date) else TRUE], nrows=nrows, ...)
}


as.data.table.datestamped.filenames <- function(f, dateExtractFunc=dateFromSpotifyFile) {
  dateExtractFunc <- match.fun(dateExtractFunc)
  date <- dateExtractFunc(f)
  fnames <- basename(f)
  folder <- dirname(f)
  folder.crop <- folder
  folder.crop <- gsub(regOr(escapeRegEx(c(data.p(),   path.expand(data.p())))),   "[dataDir]",   folder.crop)
  folder.crop <- gsub(regOr(escapeRegEx(c(ingest.p(), path.expand(ingest.p())))), "[ingestDir]", folder.crop)
  folder.crop <- gsub(regOr(escapeRegEx(c(out.p(),    path.expand(out.p())))),    "[outDir]",    folder.crop)
  DT.out <- data.table(date, folder=folder.crop, fnames)
  setnames(DT.out, "folder", "folder.crop")
  DT.out[, `:=`(folder=folder, full.path=f)]
  return(DT.out[])
}
