How to get full file path from file name?
Prepend this dirpath to the filename to get the complete path.
As @Dan Puzey indicated in the comments, it would be better to use Path.Combine
I know my answer it’s too late, but it might helpful to other’s
Try,
it will return full path of all such files in the current directory and its sub directories to string array fullFilePath. If only one file exist it will be in «fullFileName[0]».
You can get the current path:
-
The Overflow Blog
Linked
Related
Hot Network Questions
Subscribe to RSS
To subscribe to this RSS feed, copy and paste this URL into your RSS reader.
Site design / logo © 2023 Stack Exchange Inc; user contributions licensed under CC BY-SA . rev 2023.6.15.43493
By clicking “Accept all cookies”, you agree Stack Exchange can store cookies on your device and disclose information in accordance with our Cookie Policy.
C# Path
Summary: in this tutorial, you’ll learn how to use the C# Path class to interact with the file and directory paths.
Introduction to the C# Path class
The Path class is a part of the System.IO namespace in .NET. The Path class provides you with a set of useful static methods for working with the file and directory Path .
Getting the file name
To get the file name from a path, you use the GetFileName() method:
Getting the directory name
To get the directory name of the path, you use the GetDirectoryName() method :
Getting the absolute path
To get the absolute path of a specified path, you use the GetFullPath() method:
Combining paths
To combines two or more strings into a path, you use the Combine() method:
Getting file extension
To get the file extension of a path, you use the GetExtension() method:
Creating a unique temporary file name
To create a temporary file with a .tmp file extension and returns the path to it, you use the GetTempFileName() method. For example:
The method creates a unique temporary file in the current user’s temporary directory. For example, on Windows, it outputs the following:
The username is your current Windows user.
Getting a temporary directory path of the current user
To get the temporary path of the current user, you use the GetTempPath() method. For example:
Example output on Windows:
Changing the extension of the path
The ChangeExtension() method changes the file extension of a path. The following program uses the ChangExtension() method to change the .txt to .csv :
Checking if a path contains a file extension
The HasExtension method returns true if a path contains a file extension or false otherwise:
Как получить полный путь к файлу c
Подобно паре Directory/DirectoryInfo для работы с файлами предназначена пара классов File и FileInfo . С их помощью мы можем создавать, удалять, перемещать файлы, получать их свойства и многое другое.
FileInfo
Некоторые полезные методы и свойства класса FileInfo :
CopyTo(path) : копирует файл в новое место по указанному пути path
Create() : создает файл
Delete() : удаляет файл
MoveTo(destFileName) : перемещает файл в новое место
Свойство Directory : получает родительский каталог в виде объекта DirectoryInfo
Свойство DirectoryName : получает полный путь к родительскому каталогу
Свойство Exists : указывает, существует ли файл
Свойство Length : получает размер файла
Свойство Extension : получает расширение файла
Свойство Name : получает имя файла
Свойство FullName : получает полное имя файла
Для создания объекта FileInfo применяется конструктор, который получает в качестве параметра путь к файлу:
Класс File реализует похожую функциональность с помощью статических методов:
Copy() : копирует файл в новое место
Create() : создает файл
Delete() : удаляет файл
Move : перемещает файл в новое место
Exists(file) : определяет, существует ли файл
Пути к файлам
Для работы с файлами можно применять как абсолютные, так и относительные пути:
Получение информации о файле
Удаление файла
Перемещение файла
Если файл по новому пути уже существует, то с помощью дополнительного параметра можно указать, надо ли перезаписать файл (при значении true файл перезаписывается)
Копирование файла
Метод CopyTo класса FileInfo принимает два параметра: путь, по которому файл будет копироваться, и булевое значение, которое указывает, надо ли при копировании перезаписывать файл (если true , как в случае выше, файл при копировании перезаписывается). Если же в качестве последнего параметра передать значение false , то если такой файл уже существует, приложение выдаст ошибку.
Метод Copy класса File принимает три параметра: путь к исходному файлу, путь, по которому файл будет копироваться, и булевое значение, указывающее, будет ли файл перезаписываться.
Чтение и запись файлов
В дополнение к вышерассмотренным методам класс File также предоставляет ряд методов для чтения-записи текстовых и бинарных файлов:
AppendAllLines(String, IEnumerable<String>) / AppendAllLinesAsync(String, IEnumerable<String>, CancellationToken)
добавляют в файл набор строк. Если файл не существует, то он создается
AppendAllText(String, String) / AppendAllTextAsync(String, String, CancellationToken)
добавляют в файл строку. Если файл не существует, то он создается
byte[] ReadAllBytes (string path) / Task<byte[]> ReadAllBytesAsync (string path, CancellationToken cancellationToken)
считывают содержимое бинарного файла в массив байтов
string[] ReadAllLines (string path) / Task<string[]> ReadAllLinesAsync (string path, CancellationToken cancellationToken)
считывают содержимое текстового файла в массив строк
string ReadAllText (string path) / Task<string> ReadAllTextAsync (string path, CancellationToken cancellationToken)
считывают содержимое текстового файла в строку
IEnumerable<string> ReadLines (string path)
считывают содержимое текстового файла в коллекцию строк
void WriteAllBytes (string path, byte[] bytes) / Task WriteAllBytesAsync (string path, byte[] bytes, CancellationToken cancellationToken)
записывают массив байт в бинарный файл. Если файл не существует, он создается. Если существует, то перезаписывается
void WriteAllLines (string path, string[] contents) / Task WriteAllLinesAsync (string path, IEnumerable<string> contents, CancellationToken cancellationToken)
записывают массив строк в текстовый файл. Если файл не существует, он создается. Если существует, то перезаписывается
WriteAllText (string path, string? contents) / Task WriteAllTextAsync (string path, string? contents, CancellationToken cancellationToken)
записывают строку в текстовый файл. Если файл не существует, он создается. Если существует, то перезаписывается
Как видно, эти методы покрывают практически все основные сценарии — чтение и запись текстовых и бинарных файлов. Причем в зависимости от задачи можно применять как синхронные методы, так и их асинхронные аналоги.
Например, запишем и считаем обратно в строку текстовый файл:
Стоит отметить, что при добавлении текста я добавил в строку последовательность «\n», которая выполняет перевод на следующую строку. Благодаря этому добавляемый текст располагается в файле на новой строке.
Если мы хотим, что в файле изначально шло добавление на новую строку, то для записи стоит использовать метод WriteAllLines/ WriteAllLinesAsync , а для добавления — AppendAllLines / AppendAllLinesAsync
Аналогично при чтении файла если мы хотим каждую строку файла считать отдельно, то вместо ReadAllText / ReadAllTextAsync применяется ReadAllLines / ReadAllLinesAsync .
Path (путь) в C#
В этой статье мы обсудим директиву Path и различные методы в Path в C#.
Путь — это строка, которая предоставляет расположение файла или каталога. Путь не обязательно указывает на местоположение на диске. Путь может содержать абсолютную или относительную информацию о местоположении. Абсолютные пути полностью определяют местоположение: файл или каталог могут быть идентифицированы однозначно независимо от текущего местоположения. Относительные пути определяют частичное местоположение: текущее местоположение используется в качестве начальной точки при поиске файла, указанного с относительным путем. Пространство имен System.IO поддерживает этот класс.
Методы:
ChangeExtension (String, String): Изменяет расширение строки пути.
Комбинация (String, String): объединяет две строки в путь.
Комбинация (String []): Объединение массива строк в путь.
GetDirectoryName (String): возвращает информацию о каталоге для указанной строки пути.
GetExtension (String): возвращает расширение указанной строки пути.
GetFileName (String): возвращает имя файла и расширение указанной строки пути.
GetFileNameWithoutExtension (String): возвращает имя файла указанной строки пути без расширения.
GetFullPath (String): возвращает абсолютный путь для указанной строки пути.
GetInvalidFileNameChars (): Получает массив, содержащий символы, которые недопустимы в именах файлов.
GetInvalidPathChars (): Получает массив, содержащий символы, которые недопустимы в именах путей.
GetPathRoot (String): Получает информацию о корневом каталоге указанного пути.
GetRandomFileName (): возвращает имя случайной папки или имя файла.
GetTempFileName (): создает на диске уникальный файл с нулевым байтом и возвращает полный путь к этому файлу.
GetTempPath (): возвращает путь к временной папке текущего пользователя.
HasExtension (String): Определяет, включает ли путь расширение имени файла.
IsPathRooted (String): получает значение, указывающее, содержит ли указанная строка пути корень.