Files and Streams
Path Parts
Use path-string helpers without reading or writing files.
paths
Path helpers can split a file path string without touching the filesystem.
Path Parts
PathParts.cs
Replay: real traced execution (multi-file project)
using System;
using System.IO;
class Program
{
static void Main()
{
string fileName = "report.txt";
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 = "notes.md";
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 = "data.csv";
string path = Path.Combine("lessons", fileName);
string name = Path.GetFileNameWithoutExtension(path);
string extension = Path.GetExtension(path);
Console.WriteLine($"name={name}");
Console.WriteLine($"extension={extension}");
}
}
fileName ← report.txt, path ← lessons/report.txt, name ← report
5{6 static void Main()7 {8 string fileName→ report.txt = "report.txt"; //@fileName="notes.md", "data.csv"9 string path→ lessons/report.txt = Path.Combine("lessons", fileNamereport.txt);1011 string name→ report = Path.GetFileNameWithoutExtension(pathlessons/report.txt);12 string extension→ .txt = Path.GetExtension(pathlessons/report.txt);1314 Console.WriteLine($"name={namereport}");15 Console.WriteLine($"extension={extension.txt}");16 }outputname=report extension=.txt
fileName ← notes.md, path ← lessons/notes.md, name ← notes, extension ← .md
5{6 static void Main()7 {8 string fileName→ notes.md = "notes.md";9 string path→ lessons/notes.md = Path.Combine("lessons", fileNamenotes.md);1011 string name→ notes = Path.GetFileNameWithoutExtension(pathlessons/notes.md);12 string extension→ .md = Path.GetExtension(pathlessons/notes.md);1314 Console.WriteLine($"name={namenotes}");15 Console.WriteLine($"extension={extension.md}");16 }outputname=notes extension=.md
fileName ← data.csv, path ← lessons/data.csv, name ← data, extension ← .csv
5{6 static void Main()7 {8 string fileName→ data.csv = "data.csv";9 string path→ lessons/data.csv = Path.Combine("lessons", fileNamedata.csv);1011 string name→ data = Path.GetFileNameWithoutExtension(pathlessons/data.csv);12 string extension→ .csv = Path.GetExtension(pathlessons/data.csv);1314 Console.WriteLine($"name={namedata}");15 Console.WriteLine($"extension={extension.csv}");16 }outputname=data extension=.csv