copy-file
Copy a file
Highlights
- It's super fast by cloning the file whenever possible.
- Resilient by using graceful-fs.
- User-friendly by creating non-existent destination directories for you.
- Can be safe by turning off overwriting.
- Preserves file mode but not ownership.
- User-friendly errors.
Install
npm install copy-file
Usage
import {copyFile} from 'copy-file';
await copyFile('source/unicorn.png', 'destination/unicorn.png');
console.log('File copied');
API
copyFile(source, destination, options?)
Returns a Promise
that resolves when the file is copied.
The file is cloned if the onProgress
option is not passed and the file system supports it.
copyFileSync(source, destination, options?)
source
Type: string
The file you want to copy.
The file is cloned if the file system supports it.
destination
Type: string
Where you want the file copied.
options
Type: object
overwrite
Type: boolean
Default: true
Overwrite existing destination file.
cwd
Type: string
Default: process.cwd()
The working directory to find source files.
The source and destination path are relative to this.
directoryMode
Type: number
Default: 0o777
Permissions for created directories.
It has no effect on Windows.
onProgress
Type: (progress: ProgressData) => void
The given function is called whenever there is measurable progress.
Only available when using the async method.
ProgressData
{
sourcePath: string,
destinationPath: string,
size: number,
writtenBytes: number,
percent: number
}
-
sourcePath
anddestinationPath
are absolute paths. -
size
andwrittenBytes
are in bytes. -
percent
is a value between0
and1
.
Notes
- For empty files, the
onProgress
callback function is emitted only once.
import {copyFile} from 'copy-file';
await copyFile(source, destination, {
onProgress: progress => {
// …
}
});