typescript - Hvordan kan man sjekke om en fil eller mappe eksisterer ved bruk av Deno?


Deno TypeScript-runtimeen har innebygde funksjoner, men ingen av dem tar for seg å sjekke om en fil eller katalog eksisterer. Hvordan kan man sjekke om en fil eller katalog eksisterer?

Svar #1

Det finnes en implementering av standardbiblioteket her: https://deno.land/std/fs/mod.ts

import {existsSync} from "https://deno.land/std/fs/mod.ts";

const pathFound = existsSync(filePath)
console.log(pathFound)

Denne koden vil skrive ut true hvis banen eksisterer og false hvis ikke.

Og dette er den asynkrone implementeringen:

import {exists} from "https://deno.land/std/fs/mod.ts"

exists(filePath).then((result : boolean) => console.log(result))

Sørg for at du kjører deno med flagget unstable og gir tilgang til den filen:

deno run --unstable  --allow-read={filePath} index.ts

Svar #2

Deno API-en har endret seg siden utgivelsen av Deno 1.0.0. Hvis filen ikke finnes, kastes unntaket Deno.errors.NotFound

const exists = async (filename: string): Promise<boolean> => {
  try {
    await Deno.stat(filename);
    // successful, file or directory must exist
    return true;
  } catch (error) {
    if (error instanceof Deno.errors.NotFound) {
      // file or directory does not exist
      return false;
    } else {
      // unexpected error, maybe permissions, pass it along
      throw error;
    }
  }
};

exists("test.ts").then(result =>
  console.log("does it exist?", result)); // true

exists("not-exist").then(result =>
  console.log("does it exist?", result)); // false

Siden den opprinnelige svar-kontoen er suspendert og ikke kan endre svaret sitt hvis jeg kommenterer på det, legger jeg ut et fikset kodeutdrag på nytt.

Relaterte artikler