Построение пути к файлу с помощью Path.Combine C#


При использовании различных методов ввода для получения пути к файлу и имени файла формат результатов может отличаться. Чтобы избежать проблем с проверкой символов разделителя путей и добавлением или удалением их по мере необходимости, .NET предоставляет метод для этого.

Пространство имен System.IO

Пространство имен IO содержит классы, которые предоставляют функции ввода и вывода для потоков, файлов и папок. В этом пространстве имен находится класс Path, который выполняет операции со строками, содержащими информацию о пути к файлу. Один из методов класса, называемый Combine, может использоваться для объединения фрагментов пути при автоматической обработке проблем с отсутствующими символами-разделителями.

Path.Combine

Метод Combine принимает два строковых параметра. Каждый из них представляет собой фрагмент пути к файлу, который необходимо объединить. Метод добавляет второй параметр к первому и возвращает новый путь в соответствии со следующими правилами.

  • Если первый путь является только буквой диска, например "C:", он остается неизменным.
  • Если первый путь - это не просто буква диска, метод объединения гарантирует, что он заканчивается символом-разделителем.
  • Если второй параметр начинается с символа-разделителя, он считается корневой папкой и возвращается в результате всей операции.
  • Если второй параметр не начинается с символа-разделителя, он добавляется к первому параметру.
Примеры

Приведенные ниже примеры демонстрируют четыре правила. Убедитесь, что вы добавили с using System.IO; к началу вашего файла кода, чтобы выполнить следующее:

Console.WriteLine(Path.Combine("d:", "file.txt"));
Console.WriteLine(Path.Combine(@"d:\", "file.txt"));
Console.WriteLine(Path.Combine(@"d:\path1", @"\file.txt"));
Console.WriteLine(Path.Combine(@"d:\path1", "file.txt"));
Console.WriteLine(Path.Combine(@"d:\path1\", "file.txt"));
 
/* 
 
d:file.txt
d:\file.txt
\file.txt
d:\path1\file.txt
d:\path1\file.txt
 
*/
Автор этого материала - я - Пахолков Юрий. Я оказываю услуги по написанию программ на языках Java, C++, C# (а также консультирую по ним) и созданию сайтов. Работаю с сайтами на CMS OpenCart, WordPress, ModX и самописными. Кроме этого, работаю напрямую с JavaScript, PHP, CSS, HTML - то есть могу доработать ваш сайт или помочь с веб-программированием. Пишите сюда.

тегизаметки, си шарп, файл




Отправляя сообщение я подтверждаю, что ознакомлен и согласен с политикой конфиденциальности данного сайта.




CTRL Z для VBA, или оптимизация работы макроса CorelDraw
Урок 37. Коллекция SortedList C#
Почему не работает fadeIn() вместе с html()?