copy-dir

copy-dir

Downloads in past

Stats

StarsIssuesVersionUpdatedCreatedSize
copy-dir
1.3.04 years ago9 years agoMinified + gzip package size for copy-dir in KB

Readme

copy-dir
Easy used 'copy-dir' lib, even use a filter, copy a file or directory to another path, when target path or parent target path not exists, it will create the directory automatically.
install
```js npm install copy-dir ```
grammar
Sync Mode: ```js copydir.sync(from, to, options); ``` Async Mode: ```js copydir(from, to, options, callback); ``` utimes: false, // Boolean | Object, keep addTime or modifyTime if true mode: false, // Boolean | Number, keep file mode if true cover: true, // Boolean, cover if file exists filter: true, // Boolean | Function, file filter ``` filter is a function that you want to filter the path, then return true or false. It can use three arguments named state, filepath, filename
  • state: String, 'file' / 'directory' / 'symbolicLink', marked as the file or path type
  • filepath: String, the file path
  • filename: String, the file name
usage
Sync Mode: ```js var copydir = require('copy-dir'); copydir.sync('/my/from/path', '/my/target/path', { utimes: true, // keep add time and modify time mode: true, // keep file mode cover: true // cover file when exists, default is true }); ``` Async Mode: ```js var copydir = require('copy-dir'); copydir('/my/from/path', '/my/target/path', { utimes: true, // keep add time and modify time mode: true, // keep file mode cover: true // cover file when exists, default is true }, function(err){ if(err) throw err; console.log('done'); }); ```
add a filter
When you want to copy a directory, but some file or sub directory is not you want, you can do like this: Sync Mode: ```js var path = require('path'); var copydir = require('copy-dir'); copydir.sync('/my/from/path', '/my/target/path', { filter: function(stat, filepath, filename){
// do not want copy .html files
if(stat === 'file' && path.extname(filepath) === '.html') {
return false;
}
// do not want copy .svn directories
if (stat === 'directory' && filename === '.svn') {
return false;
}
// do not want copy symbolicLink directories
if (stat === 'symbolicLink') {
return false;
}
return true;  // remind to return a true value when file check passed.
} }); console.log('done'); ``` Async Mode: ```js var path = require('path'); var copydir = require('copy-dir'); copydir('/a/b/c', '/a/b/e', { filter: function(stat, filepath, filename) {
//...
return true;
} }, function(err) { //... }); ```

Update Logs

1.3.0
Bug fix: filter function arguments incorrect, delete the third argument: dirname

Questions?

If you have any questions, please feel free to ask through New Issue.

License

copy-dir is available under the terms of the MIT License.