paint-brush
The 30-Day .NET Challenge, Day 10: File Pathsby@ssukhpinder
154 reads

The 30-Day .NET Challenge, Day 10: File Paths

by Sukhpinder SinghMarch 29th, 2024
Read on Terminal Reader
Read this story w/o Javascript
tldt arrow

Too Long; Didn't Read

The article demonstrates the built-in functions while working with file system paths. It makes it easier to handle file paths. The code below provides the path to the Windows My Documents folder equivalent or the user’s HOME directory, regardless of the operating system, including Linux.
featured image - The 30-Day .NET Challenge, Day 10: File Paths
Sukhpinder Singh HackerNoon profile picture

Introduction

The article demonstrates the built-in functions while working with file system paths. It makes it easier to handle file paths.

Learning Objectives

  • Learn about constants and functions in the System.IO namespace

Prerequisites for Developers

  • How to use Visual Studio or Visual Studio Code
  • Handling variables, employing string interpolation, and displaying output.

Getting Started

How do we determine the current directory?

The System.IO contains a method to expose the full path of the current directory. To begin, create a static class file called “FilePath.cs” within the console application. Insert the provided code snippet into this file.

    public static class FilePath
    {
        /// <summary>
        /// Outputs
        /// D:\Workspace\30DayChallenge.Net\30DayChallenge.Net\bin\Debug\net8.0
        /// </summary>
        public static void DisplayCurrentDirectory()
        {
            Console.WriteLine(Directory.GetCurrentDirectory());
        }
    }

Execute the code using the main method as follows.

    #region Day 10 - File Path
    
    FilePath.DisplayCurrentDirectory();
    
    #endregion

Console Output

D:\Workspace\30DayChallenge.Net\30DayChallenge.Net\bin\Debug\net8.0

How do you work with special directories?

The code below provides the path to the Windows My Documents folder equivalent or the user’s HOME directory, regardless of the operating system, including Linux. To do that, add another method into the same static class as shown below.

    /// <summary>
    /// Outputs
    /// C:\Users\admin\Documents
    /// </summary>
    public static void DisplaySpecialDirectory()
    {
        Console.WriteLine(Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments));
    }

Execute the code using the main method as follows.

    #region Day 10 - File Path
    
    FilePath.DisplaySpecialDirectory();
    
   #endregion

Console Output

    C:\Users\admin\Documents

How to get OS path characters?

Various operating systems utilize distinct characters to separate directory levels. The framework automatically interprets the separator character relevant to the operating system being used.

To do that, add another method into the same static class as shown below

    /// <summary>
    /// Outputs
    /// For windows: \sample        
    /// </summary>
    public static void DisplayOSPathCharacters()
    {
        Console.WriteLine($"For windows: {Path.DirectorySeparatorChar}sample");
    }

Execute the code from the main method as follows

    #region Day 10 - File Path
    
    FilePath.DisplayOSPathCharacters();
    
    #endregion

Console Output

    For windows: \sample 

How do you get filename extensions?

The Path class also exposes a method to get an extension of any filename passed as a parameter. To do that, add another method into the same static class, as shown below.

    /// <summary>
    /// Outputs
    /// .json
    /// </summary>
    public static void DisplayFileExtension()
    {
        Console.WriteLine("sample.json");
    }

Execute the code using the main method as follows.

    #region Day 10 - File Path
    
    FilePath.DisplayFileExtension();
    
    #endregion

Console Output

    .json

Complete Code on GitHub

GitHub — ssukhpinder/30DayChallenge.Net

C# Programming🚀

Thank you for being a part of the C# community! Before you leave:

If you’ve made it this far, please show your appreciation with a clap and follow the author! 👏️️

Follow us: X | LinkedIn | Dev.to | Hashnode | Newsletter | Tumblr

Visit our other platforms: GitHub | Instagram | Tiktok | Quora | Daily.dev

More content at C# Programming


Also published here.