copy-unused-path

Reliably copy to an unused path.

Usage no npm install needed!

<script type="module">
  import copyUnusedPath from 'https://cdn.skypack.dev/copy-unused-path';
</script>

README

Copy Unused Path

Reliably copy to an unused path.

It is basically a wrapper around get-unused-path which doesn't just return an unused path, but also copies to it.

Features

  • It reliably retrieves an unused path via get-unused-path.
  • It attempts to copy to it, re-trying in case of failure.

Install

npm install --save copy-unused-path

Usage

It accepts the same options object as get-unused-path, plus the following options:

{
  autoDispose?: boolean // Automatically dispose once the operation is completed, enabled by default
}

It also returns the same return value as get-unused-path.

import * as fs from 'fs';
import copyUnusedPath from 'copy-unused-path';

async function example () {

  const sourceFilePath = '/x/y/z/bar.txt';

  const {folderPath, filePath, fileName} = await copyUnusedPath ( sourceFilePath, {
    folderPath: '/x/y/z',
    fileName: 'foo.txt',
    // maxTries: 1000,
    // incrementer: ( name, ext, attempt ) => attempt > 1 ? `${name}-${attempt}${ext}` : `${name}${ext}`
  });

  console.log ( folderPath ); // => '/x/y/z'
  console.log ( filePath ); // => '/x/y/z/foo (3).txt'
  console.log ( fileName ); // => 'foo (3).txt'

  console.log ( fs.existsSync ( filePath ) ); // => true

}

example ();

Related

License

MIT © Fabio Spampinato