R/filearray.R

Defines functions filearray_create2 filearray_checkload_or_remove

filearray_checkload_or_remove <- function(filebase, mode = "readonly", symlink_ok = TRUE, ...){
  if(file.exists(filebase)){
    tryCatch({
      return(filearray::filearray_checkload(
        filebase = filebase, mode = mode,
        symlink_ok = symlink_ok, ...
      ))
    }, error = function(e){
      unlink(filebase, recursive = TRUE, force = TRUE)
    })
  }
  return(NULL)
}

filearray_create2 <- function(filebase, ..., dimnames = NULL){
  dname <- dirname(filebase)
  if(!dir.exists(dname)){
    dir_create2(dname)
  }

  re <- filearray::filearray_create(filebase = filebase, ...)
  if(length(dimnames)){
    mode <- re$.mode
    on.exit({ re$.mode <- mode }, add = FALSE)
    dimnames(re) <- dimnames
    re$.mode <- mode
    on.exit({}, add = FALSE)
  }
  re
}

Try the raveio package in your browser

Any scripts or data that you put into this service are public.

raveio documentation built on July 26, 2023, 5:29 p.m.