138 lines
2.2 KiB
Markdown
138 lines
2.2 KiB
Markdown
|
# find [![Status](https://travis-ci.org/yuanchuan/find.svg?branch=master)](https://travis-ci.org/yuanchuan/find "See test builds")
|
||
|
|
||
|
Find files or directories by name.
|
||
|
|
||
|
[![NPM](https://nodei.co/npm/find.png?downloads=true&downloadRank=true&stars=true)](https://nodei.co/npm/find/)
|
||
|
|
||
|
## Installation
|
||
|
|
||
|
```bash
|
||
|
$ npm install --save find
|
||
|
```
|
||
|
|
||
|
## Examples
|
||
|
|
||
|
Find all files in current directory.
|
||
|
|
||
|
```javascript
|
||
|
var find = require('find');
|
||
|
|
||
|
find.file(__dirname, function(files) {
|
||
|
console.log(files.length);
|
||
|
})
|
||
|
```
|
||
|
|
||
|
Filter by regular expression.
|
||
|
|
||
|
```javascript
|
||
|
find.file(/\.js$/, __dirname, function(files) {
|
||
|
console.log(files.length);
|
||
|
})
|
||
|
```
|
||
|
|
||
|
## Features
|
||
|
* Recursively search each sub-directories
|
||
|
* Asynchronously or synchronously
|
||
|
* Filtering by regular expression or string comparing
|
||
|
|
||
|
## Changelog
|
||
|
#### 0.3.0
|
||
|
* Added `.use()` method
|
||
|
|
||
|
#### 0.2.0
|
||
|
* The first `pattern` option is now optional
|
||
|
* Will follow symbolic links
|
||
|
|
||
|
|
||
|
## API
|
||
|
|
||
|
#### .file([pattern,] root, callback)
|
||
|
|
||
|
```javascript
|
||
|
find.file(__dirname, function(files) {
|
||
|
//
|
||
|
})
|
||
|
```
|
||
|
|
||
|
#### .dir([pattern,] root, callback)
|
||
|
```javascript
|
||
|
find.dir(__dirname, function(dirs) {
|
||
|
//
|
||
|
})
|
||
|
```
|
||
|
|
||
|
|
||
|
#### .eachfile([pattern,] root, action)
|
||
|
|
||
|
```javascript
|
||
|
find.eachfile(__dirname, function(file) {
|
||
|
//
|
||
|
})
|
||
|
```
|
||
|
|
||
|
#### .eachdir([pattern,] root, action)
|
||
|
|
||
|
```javascript
|
||
|
find.eachdir(__dirname, function(dir) {
|
||
|
//
|
||
|
})
|
||
|
```
|
||
|
|
||
|
#### .fileSync([pattern,] root)
|
||
|
```javascript
|
||
|
var files = find.fileSync(__dirname);
|
||
|
```
|
||
|
|
||
|
#### .dirSync([pattern,] root)
|
||
|
```javascript
|
||
|
var dirs = find.dirSync(__dirname);
|
||
|
```
|
||
|
|
||
|
#### .error([callback])
|
||
|
|
||
|
Handling errors in asynchronous interfaces
|
||
|
|
||
|
```javascript
|
||
|
find
|
||
|
.file(__dirname, function(file) {
|
||
|
//
|
||
|
})
|
||
|
.error(function(err) {
|
||
|
if (err) {
|
||
|
//
|
||
|
}
|
||
|
})
|
||
|
```
|
||
|
|
||
|
#### .end([callback])
|
||
|
|
||
|
Detect `end` in `find.eachfile` and `find.eachdir`
|
||
|
|
||
|
```javascript
|
||
|
find
|
||
|
.eachfile(__dirname, function(file) {
|
||
|
//
|
||
|
})
|
||
|
.end(function() {
|
||
|
console.log('find end');
|
||
|
})
|
||
|
```
|
||
|
|
||
|
#### .use(Options)
|
||
|
* `fs`: The internal fs object to be used.
|
||
|
|
||
|
```javascript
|
||
|
const { fs, vol } = require('memfs');
|
||
|
|
||
|
const json = {
|
||
|
'./README.md': '1',
|
||
|
'./src/index.js': '2'
|
||
|
};
|
||
|
|
||
|
vol.fromJSON(json, '/app');
|
||
|
|
||
|
find
|
||
|
.use({ fs: fs })
|
||
|
.file('/app', console.log);
|
||
|
```
|