Skip to content

fs.stat(filepath).isSymbolicLink() always returns false#37456

@AlttiRi

Description

@AlttiRi
  • Version: v15.9.0, v14.15.5
  • Platform: Windows 10 x64 2004

What steps will reproduce the bug?

Run this script in a folder with a symbolic link to a file/directory.

Usemklink file_slink.js file.jsto create a slink for a file.
Usemklink /D dir_slink dirto create a slink for a directory.

#!/usr/bin/env node constfs=require("fs").promises;constpath=require("path");(asyncfunction(){constworkDirPath=process.cwd();/** @type{Dirent[]} */constdirents=awaitfs.readdir(workDirPath,{withFileTypes: true});for(constdirentofdirents){if(dirent.isSymbolicLink()){console.log("Symbolic Link found with dirent.isSymbolicLink!");}}/** @type{string[]} */constfiles=awaitfs.readdir(workDirPath);for(constfileoffiles){constfilepath=path.resolve(workDirPath,file);/** @type{Stats} */conststat=awaitfs.stat(filepath);if(stat.isSymbolicLink()){console.log("Symbolic Link found with fs.stat.isSymbolicLink!");}}})();

How often does it reproduce? Is there a required condition?

Always. No.

What is the expected behavior?

stat.isSymbolicLink() returns true for a symbolic link.

Output:

Symbolic Link found with dirent.isSymbolicLink! Symbolic Link found with fs.stat.isSymbolicLink! 

What do you see instead?

Symbolic Link found with dirent.isSymbolicLink! 

Additional information

fs.stat(filepath).isSymbolicLink() should return true for a symbolic link.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions