Resumo : neste tutorial, você aprenderá como usar a Path
classe C# para interagir com os caminhos de arquivos e diretórios.
Introdução à classe C# Path
A Path
classe faz parte do System.IO
namespace no .NET. A Path
classe fornece um conjunto de métodos estáticos úteis para trabalhar com arquivo e diretório Path
.
Obtendo o nome do arquivo
Para obter o nome do arquivo de um caminho, você usa o GetFileName()
método:
using static System.Console;
string path = @"C:\temp\readme.txt";
string fileName = Path.GetFileName(path);
WriteLine(fileName);
Linguagem de código: C# ( cs )
Saída:
readme.txt
Linguagem de código: C# ( cs )
Obtendo o nome do diretório
Para obter o nome do diretório do caminho, você usa o GetDirectoryName()
método:
using static System.Console;
string path = @"C:\temp\readme.txt";
string dirname = Path.GetDirectoryName(path);
WriteLine(dirname);
Linguagem de código: C# ( cs )
Saída:
C:\temp
Linguagem de código: C# ( cs )
Obtendo o caminho absoluto
Para obter o caminho absoluto de um caminho especificado, você usa o GetFullPath()
método:
using static System.Console;
string relativePath = @"..\..\readme.txt";
string fullPath = Path.GetFullPath(relativePath);
WriteLine(fullPath);
Linguagem de código: C# ( cs )
Saída:
C:\project\bin\readme.txt
Linguagem de código: C# ( cs )
Combinando caminhos
Para combinar duas ou mais strings em um caminho, você usa o Combine()
método:
using static System.Console;
string directory = @"C:\temp";
string fileName = "readme.txt";
string fullPath = Path.Combine(directory, fileName);
WriteLine(fullPath);
Linguagem de código: C# ( cs )
Saída:
C:\temp\readme.txt
Linguagem de código: C# ( cs )
Obtendo extensão de arquivo
Para obter a extensão do arquivo de um caminho, você usa o GetExtension()
método:
using static System.Console;
string path = @"C:\temp\readme.txt";
string extension = Path.GetExtension(path);
WriteLine(extension);
Linguagem de código: C# ( cs )
Saída:
.txt
Linguagem de código: CSS ( css )
Criando um nome de arquivo temporário exclusivo
Para criar um arquivo temporário com extensão .tmp e retornar o caminho para ele, você usa o GetTempFileName()
método. Por exemplo:
using static System.Console;
string tempFileName = Path.GetTempFileName();
WriteLine(tempFileName);
Linguagem de código: C# ( cs )
O método cria um arquivo temporário exclusivo no diretório temporário do usuário atual. Por exemplo, no Windows, ele gera o seguinte:
C:\Users\username\AppData\Local\Temp\tmpC430.tmp
Linguagem de código: C# ( cs )
Este username
é o seu usuário atual do Windows.
Obtendo um caminho de diretório temporário do usuário atual
Para obter o caminho temporário do usuário atual, você usa o GetTempPath()
método. Por exemplo:
using static System.Console;
string tempDir = Path.GetTempPath();
WriteLine(tempDir);
Linguagem de código: C# ( cs )
Exemplo de saída no Windows:
C:\Users\username\AppData\Local\Temp\
Linguagem de código: C# ( cs )
Alterando a extensão do caminho
O ChangeExtension()
método altera a extensão do arquivo de um caminho. O programa a seguir usa o ChangExtension()
método para alterar .txt
para .csv
:
using static System.Console;
string path = @"C:\temp\readme.txt";
string newExtension = ".csv";
string newPath = Path.ChangeExtension(path, newExtension);
WriteLine(newPath);
Linguagem de código: C# ( cs )
Verificando se um caminho contém uma extensão de arquivo
O HasExtension
método retorna true
se um caminho contém uma extensão de arquivo ou false
caso contrário:
using static System.Console;
string path = @"C:\temp\readme.txt";
bool hasExtension = Path.HasExtension(path);
WriteLine(hasExtension);
Linguagem de código: C# ( cs )
Saída:
True
Linguagem de código: C# ( cs )
Resumo
Método | Resultado |
---|---|
Path.GetFileName("C:\temp\readme.txt") |
readme.txt |
Path.GetDirectoryName("C:\temp\readme.txt") |
C:\temp |
Path.GetFullPath("..\..\readme.txt") |
C:\project\bin\readme.txt |
Path.Combine(@"C:\temp", "readme.txt") |
C:\temp\readme.txt \ |
Path.GetExtension(@"C:\temp\readme.txt") |
.txt |
Path.GetTempFileName() |
C:\Users\username\AppData\Local\Temp\tmpC430.tmp |
Path.GetTempPath() |
C:\Users\username\AppData\Local\Temp\ |
Path.ChangeExtension(@"C:\temp\readme.txt", ".csv") |
C:\temp\readme.csv |
Path.HasExtension(@"C:\temp\readme.txt" ) |
True |