HOWTO · Csharp

Obtenha o nome do arquivo do caminho em C#

Este artigo apresenta como extrair o nome do arquivo de um determinado caminho em C#. Inclui o método GetFileName().

Nesta página

Para obter o último componente de um caminho do sistema de arquivos em C#, use Path.GetFileName de System.IO. O método retorna o nome do arquivo com a extensão, sem que seja necessário dividir o caminho manualmente. Ele extrai texto de uma string de caminho; não abre nem verifica o arquivo.

Use Path.GetFileName para obter o componente final do caminho

Passe a string do caminho para Path.GetFileName. O resultado é o componente final após o separador de diretório reconhecido pelo sistema operacional atual. Para um caminho que termina em summary.csv, o nome retornado é summary.csv.

Execute este exemplo:

O código e os rótulos ou saídas exibidos nesta seção permanecem em inglês.

using System;
using System.IO;

class Program
{
    static void Main()
    {
        string path = "reports/2026/summary.csv";
        string fileName = Path.GetFileName(path);
        Console.WriteLine(fileName);
    }
}
summary.csv

Este programa exibe no console o nome extraído. O código é independente e usa um caminho com barras, reconhecidas como separador de diretório nas plataformas .NET mais comuns.

Trate caminhos absolutos, relativos e específicos da plataforma

O método funciona com caminhos absolutos e relativos do sistema de arquivos. Um caminho absoluto inclui sua localização a partir de uma raiz ou unidade; um caminho relativo é interpretado a partir do diretório de trabalho do aplicativo. Path.GetFileName não resolve nenhum dos caminhos no sistema de arquivos: apenas retorna o componente final da string fornecida.

O tratamento dos separadores segue as regras de Path específicas da plataforma. Um caminho com barras, como reports/summary.csv, funciona em sistemas semelhantes ao Unix e no Windows. Um caminho do Windows com barras invertidas, como C:\Reports\summary.csv, é interpretado como esperado no Windows. Em sistemas semelhantes ao Unix, a barra invertida é um caractere comum; por isso, um caminho no formato do Windows pode resultar na string inteira, em vez de apenas summary.csv. Se o aplicativo processar caminhos criados para outro sistema operacional, trate esse formato explicitamente, sem presumir que a plataforma atual o interpretará da mesma maneira.

Obtenha o nome do arquivo sem a extensão

Quando você precisar de summary em vez de summary.csv, use Path.GetFileNameWithoutExtension. Esse método combina a extração do componente final com a remoção da extensão final. Por exemplo, para reports/summary.csv em uma plataforma que reconhece / como separador, o resultado é summary.

Use essa API quando a extensão não fizer parte do valor que você precisa exibir ou comparar. Se precisar da extensão separadamente, Path.GetExtension a retorna com o ponto inicial. Esses métodos operam sobre o texto do caminho e não determinam se um arquivo existe.

Diferencie caminhos de arquivo de URLs e validação de arquivos

Uma URL não é necessariamente um caminho do sistema de arquivos. Ela pode conter um esquema, um host, uma consulta ou um fragmento, e os segmentos do caminho de uma URL seguem regras próprias. Não passe uma URL para Path.GetFileName como substituto do processamento de URLs; quando a entrada for uma URL, use um analisador de URI e depois trate qualquer nome decodificado conforme as necessidades do aplicativo.

Extrair um nome também não valida um caminho, não comprova que ele é seguro e não verifica se um arquivo existe. Essas são tarefas distintas. Use as APIs apropriadas de validação de caminhos e do sistema de arquivos para cada operação e aplique as regras de segurança do aplicativo antes de abrir ou criar arquivos. Para a tarefa específica de obter o último componente de uma string de caminho do sistema de arquivos, Path.GetFileName é a API direta.