Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Oppiskele Hakemistojen Hallinta Node.js:ssä | Konsolisovellusten Rakentaminen Node.js:llä
Backend-kehitys Node.js:llä ja Express.js:llä

bookHakemistojen Hallinta Node.js:ssä

Olemme oppineet monia tiedostojen käsittelytekniikoita FileSystem (fs)-moduulin avulla. Kansiot ovat kuitenkin enemmän kuin vain paikkoja tiedostojen tallentamiseen – ne tarjoavat mahdollisuuksia organisointiin, tiedon analysointiin ja muuhun.

Tässä luvussa syvennymme kansioiden käsittelyyn ja opastamme kansioissa liikkumisessa, tärkeiden tilastojen keräämisessä, kansioiden prosessoinnissa sekä skriptin luomisessa, joka analysoi ja näyttää kansion sisällön.

📂 Kansioissa liikkuminen fs.readdir-metodilla

fs.readdir-metodi lukee kansion sisällön asynkronisesti. Se palauttaa tiedostonimien taulukon. Tämä metodi on hyödyllinen esimerkiksi, kun halutaan listata kansion tiedostot.

Kuvitellaan tilanne, jossa käsitellään laajoja oikeudellisia sopimuksia, muistioita ja muita asiakirjoja, jotka liittyvät eri tapauksiin ja asiakkaisiin. Voisimme luoda järjestelmän, joka hakee ja listaa tiedostojen nimet jokaisen asiakkaan kansiosta.

Esimerkki: Kansion tiedostonimien lukeminen

const fs = require("fs").promises;

async function listDirectoryContents(directoryPath) {
  try {
    const files = await fs.readdir(directoryPath);
    console.log("Directory Contents:", files);
  } catch (err) {
    console.error("Error reading directory:", err.message);
  }
}

listDirectoryContents("./docs");

Vaiheittainen selitys

📊 Hakemistojen tilastojen hakeminen fs.stat-metodilla

Hakemistot sisältävät tiedostoja ja niihin liittyvää arvokasta tietoa, kuten tiedostojen ominaisuuksia.

fs.stat-metodi hakee asynkronisesti tiedoston tai hakemiston tilastotiedot. Näihin tietoihin kuuluvat muun muassa tiedoston koko, käyttöoikeudet, aikaleimat ja muut ominaisuudet.

Haetaan jokaisen docs-hakemiston sisällä olevan kansion tilastotiedot.

Esimerkki: Hakemistojen nimet ja tilastotiedot

const fs = require("fs").promises;

async function processDirectoryContents(directoryPath) {
  try {
    const files = await fs.readdir(directoryPath);

    const fileStatsPromises = files.map(async (file) => {
      const filePath = `${directoryPath}/${file}`;
      const stats = await fs.stat(filePath);
      return { name: file, stats };
    });

    const fileStats = await Promise.all(fileStatsPromises);
    console.log("Detailed File Information:", fileStats);
  } catch (err) {
    console.error("Error processing directory contents:", err.message);
  }
}

processDirectoryContents("./docs");

Vaiheittainen selitys

🧐 Viskikysymys

Testataan tiedot FileSystem (fs) -moduulista muutamalla hakemiston käsittelyyn liittyvällä kysymyksellä.

1. Mitä menetelmää voidaan käyttää hakemiston sisällön listaamiseen?

2. Mikä on fs.stat-menetelmän tarkoitus?

question mark

Mitä menetelmää voidaan käyttää hakemiston sisällön listaamiseen?

Select the correct answer

question mark

Mikä on fs.stat-menetelmän tarkoitus?

Select the correct answer

Oliko kaikki selvää?

Miten voimme parantaa sitä?

Kiitos palautteestasi!

Osio 2. Luku 9

Kysy tekoälyä

expand

Kysy tekoälyä

ChatGPT

Kysy mitä tahansa tai kokeile jotakin ehdotetuista kysymyksistä aloittaaksesi keskustelumme

Suggested prompts:

Can you explain the difference between fs.readdir and fs.stat?

How can I filter only directories or only files from the results?

What other useful information can I get from the stats object?

Awesome!

Completion rate improved to 2.56

bookHakemistojen Hallinta Node.js:ssä

Pyyhkäise näyttääksesi valikon

Olemme oppineet monia tiedostojen käsittelytekniikoita FileSystem (fs)-moduulin avulla. Kansiot ovat kuitenkin enemmän kuin vain paikkoja tiedostojen tallentamiseen – ne tarjoavat mahdollisuuksia organisointiin, tiedon analysointiin ja muuhun.

Tässä luvussa syvennymme kansioiden käsittelyyn ja opastamme kansioissa liikkumisessa, tärkeiden tilastojen keräämisessä, kansioiden prosessoinnissa sekä skriptin luomisessa, joka analysoi ja näyttää kansion sisällön.

📂 Kansioissa liikkuminen fs.readdir-metodilla

fs.readdir-metodi lukee kansion sisällön asynkronisesti. Se palauttaa tiedostonimien taulukon. Tämä metodi on hyödyllinen esimerkiksi, kun halutaan listata kansion tiedostot.

Kuvitellaan tilanne, jossa käsitellään laajoja oikeudellisia sopimuksia, muistioita ja muita asiakirjoja, jotka liittyvät eri tapauksiin ja asiakkaisiin. Voisimme luoda järjestelmän, joka hakee ja listaa tiedostojen nimet jokaisen asiakkaan kansiosta.

Esimerkki: Kansion tiedostonimien lukeminen

const fs = require("fs").promises;

async function listDirectoryContents(directoryPath) {
  try {
    const files = await fs.readdir(directoryPath);
    console.log("Directory Contents:", files);
  } catch (err) {
    console.error("Error reading directory:", err.message);
  }
}

listDirectoryContents("./docs");

Vaiheittainen selitys

📊 Hakemistojen tilastojen hakeminen fs.stat-metodilla

Hakemistot sisältävät tiedostoja ja niihin liittyvää arvokasta tietoa, kuten tiedostojen ominaisuuksia.

fs.stat-metodi hakee asynkronisesti tiedoston tai hakemiston tilastotiedot. Näihin tietoihin kuuluvat muun muassa tiedoston koko, käyttöoikeudet, aikaleimat ja muut ominaisuudet.

Haetaan jokaisen docs-hakemiston sisällä olevan kansion tilastotiedot.

Esimerkki: Hakemistojen nimet ja tilastotiedot

const fs = require("fs").promises;

async function processDirectoryContents(directoryPath) {
  try {
    const files = await fs.readdir(directoryPath);

    const fileStatsPromises = files.map(async (file) => {
      const filePath = `${directoryPath}/${file}`;
      const stats = await fs.stat(filePath);
      return { name: file, stats };
    });

    const fileStats = await Promise.all(fileStatsPromises);
    console.log("Detailed File Information:", fileStats);
  } catch (err) {
    console.error("Error processing directory contents:", err.message);
  }
}

processDirectoryContents("./docs");

Vaiheittainen selitys

🧐 Viskikysymys

Testataan tiedot FileSystem (fs) -moduulista muutamalla hakemiston käsittelyyn liittyvällä kysymyksellä.

1. Mitä menetelmää voidaan käyttää hakemiston sisällön listaamiseen?

2. Mikä on fs.stat-menetelmän tarkoitus?

question mark

Mitä menetelmää voidaan käyttää hakemiston sisällön listaamiseen?

Select the correct answer

question mark

Mikä on fs.stat-menetelmän tarkoitus?

Select the correct answer

Oliko kaikki selvää?

Miten voimme parantaa sitä?

Kiitos palautteestasi!

Osio 2. Luku 9
some-alt