- Creare director nou
- Redenumire director
- Stergere director
- Modulul fs-extra

Citire continut director

Metoda fs.readdirSync(dir) poate fi folosita pentru a citi continutul unui director. Returneaza un array cu numele de fisiere si directoare din directorul specificat ("dir"), excluzand '.' si '..'.
Exemplu: functia dirCnt() din urmatorul cod returneaza un obiect cu directoarele si fisierele din directorul in care ruleaza acest cod:
//returns object with folders and files in $dir {root:'dir_path', d:[],  f:[]}
var dirCnt = (dir)=>{
  //include the fs, path modules
  var fs = require('fs');
  var path = require('path');
  var re ={root:path.resolve(dir), d:[], f:[]};

  //traverses the list with folders and files, and add them in $re
  fs.readdirSync(dir).forEach((f)=>{
    var df = path.resolve(dir, f); //set the path of the file/folder

    //check if $df is file or directory
    var stats = fs.statSync(df);
    if(stats.isFile()) re.f.push(f);
    else if(stats.isDirectory()) re.d.push(f);
  });
  return re;
};

//get the folder and files of the directory where this file is located
var df = dirCnt(__dirname);
console.log(df);
Salveaza codul de mai sus intr-un fisier numit "read_dir.js" si ruleaza fisierul in interfata command line.
Vei obtine un resultat ca in acest screenshoot:
node.js read directory

Creare director nou

Pentru a crea un director nou, poti folosi metoda fs.mkdir() sau metoda fs.mkdirSync()
Aici este un exemplu cu o functie care poate fi folosita pentru a crea un nou director:
//creates in $base the directory $dirname; Returns string message
var createDir = (base, dirname)=>{
  //include the fs, path modules
  var fs = require('fs');
  var path = require('path');
  var dir = path.resolve(base, dirname);
  var re ='The directory: '+ dir +'/ already exists';

  if(!fs.existsSync(dir)){
    fs.mkdirSync(dir, 0755);
    re = fs.existsSync(dir) ?'Successfully created: '+ dir :'Unable to create: '+ dir;
  }
  return re;
};

//creates a folder called 'newdir' in the directory where this file is located
var mkdir = createDir(__dirname, 'newdir');
console.log(mkdir);

Redenumire director

Pentru a redenumi un director cu modulul File system, se foloseste metoda fs.rename(oldPath, newPath, callback)
Exemplu: Redenumeste directorul "dir_1" (localizat in "/test") in "renamed_dir":
const fs = require('fs');
var old_d ='./test/dir_1';
var new_d ='./test/renamed_dir';

fs.rename(old_d, new_d, (err)=>{
  if(err) throw err;
  console.log('Renamed.');
});

Stergere director

Pentru a sterge un director poti folosi functia removeDir() din acest cod:
/*
Remove a Directory Asynchronously
 - dir = path to directory to delete
 - recursive = true or false;
   True - will remove recursively the entire directory;
   False - delete only the files in specified directory
 - callback = (optional) callback function; receives an argument for returned response
*/
function removeDir(dir, recursive, callback){
  const fs = require('fs');
  const path = require('path');
  var nr =0; //to call the callback only once

  function delFile(dir, file){
    return new Promise(function (resolve, reject){
      var filePath = path.join(dir, file);
      fs.lstat(filePath, function(err, stats){
        if(err) return reject(err);
        if(recursive===true && stats.isDirectory()) resolve(delDir(filePath));
        else if(stats.isFile()){
          fs.unlink(filePath, function(err){
            if(err) return reject(err);
            resolve();
          });
        }
        nr++;
        if(recursive===false && nr==1) return callback ? callback('Files deleted') :resolve();
      });
    });
  };

  function delDir(dir){
    return new Promise(function(resolve, reject){
      fs.access(dir, function(err){
        if(err) return callback ? callback(err) :reject(err);
        fs.readdir(dir, function(err, files){
          if(err) return callback ? callback(err) :reject(err);
          Promise.all(files.map(function(file){
            return delFile(dir, file);
          })).then(function(){
            if(recursive===true){
              fs.rmdir(dir, function(err){
                if(err) return callback ? callback(err) :reject(err);
                if(callback) resolve(callback('Deleted: '+dir));
                else resolve('Deleted: '+dir);
              });
            }
            else resolve();
          }).catch(reject);
        });
      });
    });
  };
  return delDir(dir);
}
- Aceasta functie: removeDir(), poate sterge recursiv tot directorul sau doar fisierele acestuia.
Exemplu de folosire:
- Sterge recursiv intregul director '.test/dirx/':
// here add the removeDir() function

removeDir('./test/dirx/', true, function(re){console.log(re);});
- Sterge doar fisierele din directorul '.test/dirx/':
// here add the removeDir() function

removeDir('./test/dirx/', false, function(re){console.log(re);});

Modulul fs-extra

O alta optiune pentru a lucra cu usurinta cu directoare si fisiere pe server este modulul fs-extra.
fs-extra adauga metode file system care nu sunt incluse in modulul nativ "fs" si adauga "promise" suport pentru metodele "fs". Poate fi folosit ca un inlocuitor pentru "fs".
- Inainte de a folosi modulul "fs-extra", trebuie sa il instalezi. Pentru a instala "fs-extra", ruleaza acest cod in interfata command line:
npm install --save fs-extra
Apoi, poti folosi modulul fs-extra in proiectele tale Node.js ca un inlocuitor pentru nativul fs.
const fs = require('fs-extra');
Toate metodele din fs sunt atasate si la fs-extra. Toate metodele "fs" returneaza "promises" daca nu e transmisa o functie callback.
Examplu:
const fs = require('fs-extra')
 
// Async with promises: 
fs.copy('/tmp/dirname/', '/dirx/dirname/')
.then(() => console.log('success!'))
.catch(err => console.error(err));
 
// Async with callbacks: 
fs.copy('/tmp/dirname/', '/dirx/dirname/', err =>{
  if (err) return console.error(err);
  console.log('success!');

// Sync: 
try {
  fs.copySync('/tmp/dirname/', '/dirx/dirname/');
  console.log('success!');
} catch (err){
  console.error(err);
}
});
- Pentru documentatie vezi modulul fs-extra.

Un Test simplu in fiecare zi

HTML
CSS
JavaScript
PHP-MySQL
Engleza
Spaniola
Care tag HTML5 defineste un text marcat, evidentiat?
<mark> <embed> <span>
<p>Cursuri graruite: <mark>MarPlo.net</mark> , jocuri, anime.</p>
Ce pseudo-clasa CSS defineste un stil la element cand mouse-ul e deasupra lui?
:focus :hover :active
a:hover {
  font-weight: bold;
  color: #00da01;
}
Clic pe functia ce returneaza un sir cu un numar rotunjit la x decimale.
toPrecision(x) toFixed(x) floor(x)
var num = 12.34567;
num = num.toFixed(2);
alert(num);       // 12.35
Indicati functia PHP care adauga continutul unui fisier intr-un array.
[) file() readfile()
$arr = file("a_file.txt", FILE_IGNORE_NEW_LINES | FILE_SKIP_EMPTY_LINES);
var_export($arr);
Clic pe raspunsul potrivit la intrebarea: "What time is it?"
On the 7th of July 1996 It is a quarter to 5. Nice weather.
What time is it? It is a quarter to 5.
- Cat este ora? E 5 fara un sfert.
Indicati raspunsul potrivit la intrebarea: "¿Qué hora es?"
Hace buen tiempo. En el 7 de julio de 1996 Son las tres menos cuarto.
¿Qué hora es? Son las tres menos cuarto.
- Cat este ora? E 3 fara un sfert.
Node.js - Lucrul cu Directoare

Last accessed pages

  1. Scriere scripturi PHP elementare (1576)
  2. Conditional IF in Limba Engleza - Fraze Conditionale (20736)
  3. Curs PHP MySQL, Tutoriale si Scripturi PHP (6659)
  4. Espanol Chistes - Glume, Bancuri (877)
  5. Sintaxa JavaScript (2435)

Popular pages this month

  1. Gramatica limbii engleze - Prezentare Generala (2144)
  2. Prezentul simplu si continuu - Present Tense Simple and Continuous (1480)
  3. Cursuri si Tutoriale: Spaniola, Engleza, HTML, CSS, Php-Mysql, JavaScript, Ajax (1072)
  4. Trecutul simplu si continuu - Past Tense Simple and Continuous (1025)
  5. Prezent perfect si Prezent perfect continuu - Present perfect and Continuous (981)