Bird
Raised Fist0
Node.jsframework~10 mins

path.basename and path.dirname in Node.js - Interactive Code Practice

Choose your learning style10 modes available

Start learning this pattern below

Jump into concepts and practice - no test required

or
Recommended
Test this pattern10 questions across easy, medium, and hard to know if this pattern is strong
Practice - 5 Tasks
Answer the questions below
1fill in blank
easy

Complete the code to get the base file name from the path.

Node.js
const path = require('path');
const filePath = '/home/user/docs/file.txt';
const baseName = path.[1](filePath);
console.log(baseName);
Drag options to blanks, or click blank then click option'
Ajoin
Bbasename
Cextname
Ddirname
Attempts:
3 left
💡 Hint
Common Mistakes
Using path.dirname instead of path.basename returns the folder path, not the file name.
Using path.extname returns only the file extension.
2fill in blank
medium

Complete the code to get the directory name from the path.

Node.js
const path = require('path');
const filePath = '/home/user/docs/file.txt';
const dirName = path.[1](filePath);
console.log(dirName);
Drag options to blanks, or click blank then click option'
Abasename
Bextname
Cresolve
Ddirname
Attempts:
3 left
💡 Hint
Common Mistakes
Using path.basename returns the file name, not the directory.
Using path.extname returns the file extension.
3fill in blank
hard

Fix the error in the code to correctly get the base name of the file.

Node.js
const path = require('path');
const filePath = '/var/log/system.log';
const base = path.[1](filePath, '.log');
console.log(base);
Drag options to blanks, or click blank then click option'
Abasename
Bjoin
Cextname
Ddirname
Attempts:
3 left
💡 Hint
Common Mistakes
Using path.dirname returns the directory, not the file name.
Using path.extname returns only the extension, not the file name.
4fill in blank
hard

Fill both blanks to create a dictionary with file names as keys and their directories as values.

Node.js
const path = require('path');
const files = ['/a/b/c.txt', '/d/e/f.js', '/g/h/i.md'];
const fileDirs = {};
for (const file of files) {
  fileDirs[path.[1](file)] = path.[2](file);
}
console.log(fileDirs);
Drag options to blanks, or click blank then click option'
Abasename
Bdirname
Cextname
Djoin
Attempts:
3 left
💡 Hint
Common Mistakes
Swapping basename and dirname causes keys and values to be reversed.
Using extname returns only file extensions, not names or directories.
5fill in blank
hard

Fill the blanks to create an object mapping file extensions to their base names.

Node.js
const path = require('path');
const files = ['/x/y/z.py', '/a/b/c.js', '/m/n/o.py'];
const extMap = {};
for (const file of files) {
  const ext = path.[1](file);
  const base = path.[2](file, ext);
  if (!extMap[ext]) {
    extMap[ext] = [];
  }
  extMap[ext].push(base);
}
console.log(extMap);
Drag options to blanks, or click blank then click option'
Aextname
Bbasename
Cext
Ddirname
Attempts:
3 left
💡 Hint
Common Mistakes
Using dirname instead of extname returns folder paths, not extensions.
Not passing the extension to basename causes the extension to remain in the base name.

Practice

(1/5)
1. What does path.basename return when given a full file path?
easy
A. The folder path only
B. The file name with extension
C. The full path unchanged
D. The file extension only

Solution

  1. Step 1: Understand path.basename purpose

    This function extracts the last part of a path, which is usually the file name with its extension.
  2. Step 2: Compare with other path parts

    Unlike path.dirname which returns the folder path, path.basename returns the file name part.
  3. Final Answer:

    The file name with extension -> Option B
  4. Quick Check:

    basename = file name [OK]
Hint: basename gives file name, dirname gives folder path [OK]
Common Mistakes:
  • Confusing basename with dirname
  • Expecting basename to return folder path
  • Thinking basename returns file extension only
2. Which of the following is the correct syntax to get the directory name from a path using Node.js path module?
easy
A. path.getDirName('/home/user/file.txt')
B. path.getdirname('/home/user/file.txt')
C. path.dirName('/home/user/file.txt')
D. path.dirname('/home/user/file.txt')

Solution

  1. Step 1: Recall correct method name in path module

    The correct method to get the directory name is dirname, all lowercase.
  2. Step 2: Check method call syntax

    It is called as path.dirname(pathString), so path.dirname('/home/user/file.txt') matches exactly.
  3. Final Answer:

    path.dirname('/home/user/file.txt') -> Option D
  4. Quick Check:

    dirname method syntax = path.dirname('/home/user/file.txt') [OK]
Hint: Use exact method name dirname() with lowercase letters [OK]
Common Mistakes:
  • Capitalizing method names incorrectly
  • Using getDirName or similar incorrect names
  • Misspelling dirname as dirName
3. What will be the output of the following code?
const path = require('path');
const fullPath = '/var/www/html/index.html';
console.log(path.basename(fullPath));
console.log(path.dirname(fullPath));
medium
A. index.html
/var/www/html
B. /var/www/html/index.html
index.html
C. index
/var/www/html/index.html
D. /var/www/html
index.html

Solution

  1. Step 1: Evaluate path.basename(fullPath)

    This returns the file name with extension, which is index.html.
  2. Step 2: Evaluate path.dirname(fullPath)

    This returns the folder path containing the file, which is /var/www/html.
  3. Final Answer:

    index.html
    /var/www/html
    -> Option A
  4. Quick Check:

    basename = file name, dirname = folder path [OK]
Hint: basename prints file, dirname prints folder path [OK]
Common Mistakes:
  • Swapping basename and dirname outputs
  • Expecting basename to return folder path
  • Confusing output order
4. Identify the error in this code snippet:
const path = require('path');
const filePath = '/usr/local/bin/node';
console.log(path.baseName(filePath));
console.log(path.dirname(filePath));
medium
A. Incorrect method name 'baseName' should be 'basename'
B. Missing import of 'path' module
C. Wrong argument type passed to dirname
D. No error, code runs fine

Solution

  1. Step 1: Check method names used

    The method path.baseName is incorrect because the correct method is all lowercase basename.
  2. Step 2: Verify other parts

    The path module is imported correctly and dirname usage is correct, so no other errors.
  3. Final Answer:

    Incorrect method name 'baseName' should be 'basename' -> Option A
  4. Quick Check:

    Method names are case-sensitive [OK]
Hint: Check method name spelling and case carefully [OK]
Common Mistakes:
  • Using wrong case in method names
  • Assuming method names are case-insensitive
  • Ignoring error messages about undefined functions
5. Given the path /home/user/docs/letter.txt, how can you use path.basename and path.dirname together to print:
Folder: /home/user/docs
File: letter.txt
Which code snippet achieves this?
hard
A. console.log(`Folder: ${path.dirname(path.basename(filePath))}`); console.log(`File: ${path.basename(path.dirname(filePath))}`);
B. console.log(`Folder: ${path.basename(filePath)}`); console.log(`File: ${path.dirname(filePath)}`);
C. console.log(`Folder: ${path.dirname(filePath)}`); console.log(`File: ${path.basename(filePath)}`);
D. console.log(`Folder: ${filePath.dirname()}`); console.log(`File: ${filePath.basename()}`);

Solution

  1. Step 1: Use path.dirname to get folder path

    Calling path.dirname(filePath) returns the folder path /home/user/docs.
  2. Step 2: Use path.basename to get file name

    Calling path.basename(filePath) returns the file name letter.txt.
  3. Step 3: Combine in template strings for output

    Using template literals with these calls prints the desired output lines.
  4. Final Answer:

    console.log(`Folder: ${path.dirname(filePath)}`); console.log(`File: ${path.basename(filePath)}`); -> Option C
  5. Quick Check:

    dirname = folder, basename = file [OK]
Hint: dirname for folder, basename for file name [OK]
Common Mistakes:
  • Swapping basename and dirname calls
  • Trying to call basename/dirname on strings directly
  • Using incorrect method chaining