#File

DESCRIPTION

[![Build Status](https://api.travis-ci.org/edenjs/file.png)](https://travis-ci.org/edenjs/file)

## General

### Installation

```
npm install eden-file
```

### Usage

```
var file = require('eden-file');
```

## Methods

  * [copy](#copy)

  * [getBase](#getBase)

  * [getContent](#getContent)

  * [getData](#getData)

  * [getExtension](#getExtension)

  * [getMime](#getMime)

  * [getParent](#getParent)

  * [getName](#getName)

  * [getPermissions](#getPermissions)

  * [getSize](#getSize)

  * [getReadStream](#getReadStream)

  * [getWriteStream](#getWriteStream)

  * [getTime](#getTime)

  * [isFile](#isFile)

  * [setContent](#setContent)

  * [setData](#setData)

  * [remove](#remove)

---

<a name="copy"></a>

### copy

```
 this copy(__dirname + '/bar/foo.txt');
```

Copy folder to path Note: This has to be async

#### Parameters

  1. __dirname + '/bar/foo.txt' - string

#### Returns

 this

#### Example

##### Code

```
  var item = file(__dirname + '/foo/bar.txt');

    item.copy(__dirname + '/bar/foo.txt', function(error));
file().copy(error);
```

##### Outputs

```
null
```

---

<a name="getBase"></a>

### getBase

```
 string getBase();
```

Returns the base name of the file

#### Parameters

#### Returns

 string

#### Example

##### Code

```
  var item = file(__dirname + '/foo/bar.txt');

item.getBase();
```

##### Outputs

```
'bar'
```

---

<a name="getContent"></a>

### getContent

```
 this getContent(content, String);
```

Returns file content

#### Parameters

  1. content - function

  2. string

#### Returns

 this

#### Example

##### Code

```
  item.getContent(function(error, content));

file().getContent(content);
```

##### Outputs

```
'Mocha Test'
```

---

<a name="getData"></a>

### getData

```
 this getData(data);
```

Returns JSON data in file

#### Parameters

  1. data - function (to get)

#### Returns

 this

#### Example

##### Code

```
  var item = file(__dirname + '/foo/bar.txt');

    item.getData(function(error, data));
file().getData(data.foo);
```

##### Outputs

```
'bar'
```

---

<a name="getExtension"></a>

### getExtension

```
 string getExtension();
```

Returns the file extension

#### Parameters

#### Returns

 string

#### Example

##### Code

```
  var item = file(__dirname + '/foo/bar.txt');

item.getExtension();
```

##### Outputs

```
'txt'
```

---

<a name="getMime"></a>

### getMime

```
 string getMime();
```

Returns file mime type

#### Parameters

#### Returns

 string

#### Example

##### Code

```
  var item = file(__dirname + '/foo/bar.txt');

item.getMime();
```

##### Outputs

```
'text/plain'
```

---

<a name="getParent"></a>

### getParent

```
 string getParent();
```

Returns the folder path

#### Parameters

#### Returns

 string

#### Example

##### Code

```
  var sep = require('path').sep;
  var item = file(__dirname + '/foo/bar.txt');

item.getParent();
```

##### Outputs

```
__dirname + sep + 'foo'
```

---

<a name="getName"></a>

### getName

```
 string getName();
```

Returns just the file name

#### Parameters

#### Returns

 string

#### Example

##### Code

```
  var item = file(__dirname + '/foo/bar.txt');

item.getName();
```

##### Outputs

```
'bar.txt'
```

---

<a name="getPermissions"></a>

### getPermissions

```
 number getPermissions();
```

Returns numeric permissions

#### Parameters

#### Returns

 number

#### Example

##### Code

```
  var item = file(__dirname + '/foo/bar.txt');

item.getPermissions() >= 644;
```

##### Outputs

```
true
```

---

<a name="getSize"></a>

### getSize

```
 number getSize();
```

Returns the file size in bytes

#### Parameters

#### Returns

 number

#### Example

##### Code

```
  var item = file(__dirname + '/foo/bar.txt');

item.getSize();
```

##### Outputs

```
10
```

---

<a name="getReadStream"></a>

### getReadStream

```
 resource getReadStream();
```

Returns the read stream if you want to do more advance things

#### Parameters

#### Returns

 resource

#### Example

##### Code

```
file().getReadStream();
```

##### Outputs

```
RESULTS
```

---

<a name="getWriteStream"></a>

### getWriteStream

```
 resource getWriteStream();
```

Returns the write stream if you want to do more advance things

#### Parameters

#### Returns

 resource

#### Example

##### Code

```
file().getWriteStream();
```

##### Outputs

```
RESULTS
```

---

<a name="getTime"></a>

### getTime

```
 number getTime();
```

Returns the last updated time in unix format

#### Parameters

#### Returns

 number

#### Example

##### Code

```
  var item = file(__dirname + '/foo/bar.txt');

item.getTime() > 0;
```

##### Outputs

```
true
```

---

<a name="isFile"></a>

### isFile

```
 bool isFile();
```

Returns true if the file is a real file in the system

#### Parameters

#### Returns

 bool

#### Example

##### Code

```
  var item = file(__dirname + '/foo/bar.txt');

item.isFile();
```

##### Outputs

```
true
```

---

<a name="setContent"></a>

### setContent

```
 this setContent('Mocha Test', error|true);
```

Sets the content of the file

#### Parameters

  1. 'Mocha Test' - string

  2. error - function|true

#### Returns

 this

#### Example

##### Code

```
  item.setContent('Mocha Test', function(error));

file().setContent(error);
```

##### Outputs

```
null
```

---

<a name="setData"></a>

### setData

```
 this setData({foo: 'bar'}, error|true);
```

Sets JSON data into a file

#### Parameters

  1. {foo: 'bar'} - mixed

  2. error - function|true

#### Returns

 this

#### Example

##### Code

```
  var item = file(__dirname + '/foo/bar.txt');

    item.setData({foo: 'bar'}, function(error));
file().setData(error);
```

##### Outputs

```
null
```

---

<a name="remove"></a>

### remove

```
 this remove();
```

Removes the file

#### Parameters

#### Returns

 this

#### Example

##### Code

```
  var item = file(__dirname + '/foo/bar.txt');

    item.remove(function(error));
file().remove(error);

    folder(__dirname + '/foo').remove(function(error));
file().remove(error);

    folder(__dirname + '/bar').remove(function(error));
file().remove(error);
```

##### Outputs

```
null

null

null
```
