Use path-string helpers without reading or writing files.

Path Parts

PathParts.cs
using System;
using System.IO;

class Program
{
    static void Main()
    {
        string fileName = ;
        string path = Path.Combine("lessons", fileName);

        string name = Path.GetFileNameWithoutExtension(path);
        string extension = Path.GetExtension(path);

        Console.WriteLine($"name={name}");
        Console.WriteLine($"extension={extension}");
    }
}
using System;
using System.IO;

class Program
{
    static void Main()
    {
        string fileName = ;
        string path = Path.Combine("lessons", fileName);

        string name = Path.GetFileNameWithoutExtension(path);
        string extension = Path.GetExtension(path);

        Console.WriteLine($"name={name}");
        Console.WriteLine($"extension={extension}");
    }
}
using System;
using System.IO;

class Program
{
    static void Main()
    {
        string fileName = ;
        string path = Path.Combine("lessons", fileName);

        string name = Path.GetFileNameWithoutExtension(path);
        string extension = Path.GetExtension(path);

        Console.WriteLine($"name={name}");
        Console.WriteLine($"extension={extension}");
    }
}
paths Path helpers can split a file path string without touching the filesystem.