Path. Get File Name Метод
Некоторые сведения относятся к предварительной версии продукта, в которую до выпуска могут быть внесены существенные изменения. Майкрософт не предоставляет никаких гарантий, явных или подразумеваемых, относительно приведенных здесь сведений.
Перегрузки
Возвращает имя и расширение файла из пути к файлу, представленного диапазоном символов только для чтения.
Возвращает имя файла и расширение указанной строки пути.
GetFileName(ReadOnlySpan)
Возвращает имя и расширение файла из пути к файлу, представленного диапазоном символов только для чтения.
public: static ReadOnlySpan GetFileName(ReadOnlySpan path);
public static ReadOnlySpan GetFileName (ReadOnlySpan path);
static member GetFileName : ReadOnlySpan -> ReadOnlySpan
Public Shared Function GetFileName (path As ReadOnlySpan(Of Char)) As ReadOnlySpan(Of Char)
Параметры
Диапазон только для чтения, содержащий путь, из которого нужно получить имя и расширение файла.
Возвращаемое значение
Символы, следующие за последним символом разделителя каталогов в пути path .
Комментарии
Возвращаемый диапазон только для чтения содержит символы пути, следующие за последним разделителем в path . Если последний символ в path является разделителем тома или каталога, метод возвращает ReadOnlySpan.Empty. Если path не содержит символа-разделителя, метод возвращает path .
См. также раздел
Применяется к
GetFileName(String)
Возвращает имя файла и расширение указанной строки пути.
public: static System::String ^ GetFileName(System::String ^ path);
public static string GetFileName (string path);
public static string? GetFileName (string? path);
static member GetFileName : string -> string
Public Shared Function GetFileName (path As String) As String
Параметры
Строка пути, из которой нужно получить имя файла и расширение.
Возвращаемое значение
Символы, следующие за последним символом разделителя каталогов в пути path . Если последним символом параметра path является символ разделения тома или каталога, этот метод возвращает Empty. Если значением параметра path является null , метод возвращает null .
Исключения
платформа .NET Framework и .NET Core версий старше 2.1: path содержит один или несколько недопустимых символов, определенных в GetInvalidPathChars().
Примеры
В следующем примере показано поведение метода на GetFileName классической платформе Windows.
String^ fileName = "C:\\mydir\\myfile.ext"; String^ path = "C:\\mydir\\"; String^ result; result = Path::GetFileName( fileName ); Console::WriteLine( "GetFileName('') returns ''", fileName, result ); result = Path::GetFileName( path ); Console::WriteLine( "GetFileName('') returns ''", path, result ); // This code produces output similar to the following: // // GetFileName('C:\mydir\myfile.ext') returns 'myfile.ext' // GetFileName('C:\mydir\') returns ''
string fileName = @"C:\mydir\myfile.ext"; string path = @"C:\mydir\"; string result; result = Path.GetFileName(fileName); Console.WriteLine("GetFileName('') returns ''", fileName, result); result = Path.GetFileName(path); Console.WriteLine("GetFileName('') returns ''", path, result); // This code produces output similar to the following: // // GetFileName('C:\mydir\myfile.ext') returns 'myfile.ext' // GetFileName('C:\mydir\') returns ''
Dim fileName As String = "C:\mydir\myfile.ext" Dim pathname As String = "C:\mydir\" Dim result As String result = Path.GetFileName(fileName) Console.WriteLine("GetFileName('') returns ''", fileName, result) result = Path.GetFileName(pathname) Console.WriteLine("GetFileName('') returns ''", pathname, result) ' This code produces output similar to the following: ' ' GetFileName('C:\mydir\myfile.ext') returns 'myfile.ext' ' GetFileName('C:\mydir\') returns ''
Комментарии
Возвращаемое значение равно , null если путь к файлу — null .
Символы разделителя, используемые для определения начала имени файла: DirectorySeparatorChar и AltDirectorySeparatorChar.
Так как \ является законным именем файла в Unix, GetFileName выполнение на платформах под управлением Unix не может правильно возвращать имя файла из пути на основе Windows, например C:\mydir\myfile.ext, но GetFileName выполнение на платформах под управлением Windows может правильно возвращать имя файла из пути на основе Unix, например /tmp/myfile.ext, поэтому поведение GetFileName метода не является строго одинаковым на платформах под управлением Unix и Windows.
Список распространенных задач ввода-вывода см. в разделе Общие задачи ввода-вывода.
См. также раздел
- Форматы путей к файлам в системах Windows
- Файловый и потоковый ввод-вывод
- Практическое руководство. Чтение текста из файла
- Практическое руководство. Запись текста в файл
Путь, имя и расширение файла
Достаточно часто возникают ситуации, когда у нас есть полное имя файла, а требуется узнать его расширение. Или добавить нужное расширение, когда не известно, ввел его пользователь или нет. Иногда у нас есть относительный путь до файла, а требуется узнать абсолютный. Про основные методы работы с именем файла и будет эта статья.
Абсолютный путь к файлу
Для того чтобы узнать в Python абсолютный путь к файлу, потребуется воспользоваться библиотекой os. Её подключаем с помощью команды import os. В классе path есть метод abspath. Вот пример использования.
import os p = os.path.abspath('file.txt ') print(p) C:\python3\file.txt
Так же можно воспользоваться и стандартной библиотекой pathlib. Она вошла в состав основных библиотек, начиная с версии Python 3.4. До этого надо было ее инсталлировать с помощью команды pip install pathlib. Она предназначена для работы с путями файловой системы в разных ОС и отлично подойдет для решения данной задачи.
import pathlib p = pathlib.Path('file.txt ') print(p) C:\python3\file.txt
Имя файла
Чтобы узнать имя файла из полной строки с путем, воспользуемся методом basename модуля os.
import os name = os.path.basename(r'C:\python3\file.txt ') print(name) file.txt
Здесь перед строкой вставил r, чтобы подавить возможное возникновение служебных символов. Например, в данном случае если не указать r, то \f считалось бы символом перевода страницы.
Без расширения
Теперь разберемся, как в Python узнать имя файла без расширения. Воспользуемся методом splittext. В этот раз для примера возьмем файл с двойным расширением, чтобы проверить, как будут в этой ситуации работать стандартны функции.
from os import path full_name = path.basename(r'C:\python3\file.tar.gz ') name = path.splitext(full_name)[0] print(name) file.tar
Видно, что последнее расширение архиватора gz было отброшено, в то время как расширение несжатого архива tar осталось в имени.
Если же нам нужно только имя, то можно отбросить все символы полученной строки, которые идут после первой точки. Символ точки тоже отбросим.
Дополним предыдущий пример следующим кодом:
index = name.index('.') print(name[:index]) file
Расширение файла
В Python получить расширение файла можно аналогичным образом с помощью той же функции splitext. Она возвращает кортеж. Первый элемент кортежа имя, а второй – расширение. В данном случае нам нужен второй элемент. Индекс второго элемента равен единице, так как отсчет их идет от нуля.
from os import path full_name = path.basename(r'C:\python3\file.tar.gz ') name = path.splitext(full_name)[1] print(name) .gz
Аналогично можно воспользоваться библиотекой pathlib. Воспользуемся методом suffix.
from pathlib import Path print(Path(r'C:\python3\file.tar.gz ').suffix) .gz
Но в нашем случае два расширения. Их можно узнать с помощью функции suffixes. Она возвращает список, элементами которого и будут расширения. Ниже приведен пример получения списка расширений.
from pathlib import Path print(Path(r'C:\python3\file.tar.gz ').suffixes) ['.tar', '.gz ']
Для того, чтобы получить имя файла или расширение из полного пути или для получения абсолютного пути к файлу используйте библиотеки os и pathlib. Лучше воспользоваться готовым решением из стандартой библиотеками, чем писать свое решение.
Linux — Получить путь и имя файла из полного пути
Чтобы извлечь путь к файлу или имя файла из полного пути можно использовать разные утилиты, как grep, sed, awk, etc. Если же это не список из файла или переменной, можно использовать find, но есть более простой способ:
- basename — возвращает имя файла
- dirname — возвращает путь к файлу
Пример:
basename /home/artem/file.txt file.txt dirname /home/artem/file.txt /home/artem
Эти две утилиты входят в пакет coreutils
Похожие записи
- S3 — Монтирование в Linux
- FIX ERROR — fdisk: DOS partition table format cannot be used on drives for volumes larger than 2199023255040 bytes for 512-byte sectors
- AWS Cli — Lambda: Обновить значение одной переменной
- Linux — Монтирование раздела по лейблу
Получить имя файла, добавляемого в бизнес-процессе
Нужно получить имя, загружаемого через параметры бизнес-процесса файла.
Если в изменение документа в специальное поле вписать , то в итогде записывается что-то вроде этого: [url=/bitrix/tools/bizproc_show_file.php?f=f3277260a5a0c0c8aea5ace770bbc524&i=627]kantserovpubl2.pdf[/url], если без _printable , выдаётся id файла. Вопрос в том, как получить само имя файла без ссылки ( в данном случае kantserovpubl2.pdf).
Сообщений: 1837 Баллов: 177 Регистрация: 24.03.2009
28.04.2015 21:27:34
вам придётся действовать через действие php-код и добывать имя файла с помощью апи http://dev.1c-bitrix.ru/api_help/main/reference/cfile/getfilearray.php
спасибо на лайк не намажешь
Заглянувший
Сообщений: 24 Баллов: 1 Регистрация: 29.04.2013
29.04.2015 17:38:21
А как получить результаты действия php кода?
Сообщений: 1837 Баллов: 177 Регистрация: 24.03.2009
29.04.2015 21:03:39
в переменную БП сохранять и дальше её в выводе использовать.
создаёте строковую переменную в БП, например filename
получаете через апи имя файла и пишете его в переменную $this->SetVariable(«filename», $вашедобытоеимяфайла);
дальше её используете обычным порядком для вывода
спасибо на лайк не намажешь
Заглянувший
Сообщений: 6 Регистрация: 10.07.2018
16.08.2019 16:22:44
Можно ли получить имя файла через вебхук и rest api? Или через какой-либо другой http-запрос?
Страницы: 1
Продукты
Управление сайтом
Битрикс24
Интернет-магазин + CRM
Решения
Для интернет-магазинов
Каталог готовых решений
Внедрение
Выбрать партнера
Проверить партнера
Стать партнером
1С-Битрикс http://www.1c-bitrix.ru Общие вопросы info@1c-bitrix.ru Приобретение и лицензирование продуктов : sales@1c-bitrix.ru Маркетинг/мероприятия/PR marketing@1c-bitrix.ru Партнерская программа partners@1c-bitrix.ru Мы работаем с 10:00 до 19:00 по московскому времени. Офис в Москве 127287 Россия Московская область Москва 2-я Хуторская улица дом 38А строение 9 Офис в Калининграде +7 (4012) 51-05-64 Офис в Калининграде 236001 Россия Калининградская область Калининград Московский проспект 261 Офис в Киеве ukraine@1c-bitrix.ru Телефон в Киеве +3 (8044)221-55-33 Офис в Киеве 01033 Украина Калининградская область Киев улица Шота Руставели 39/41 офис 1507
© 2001-2023 «Битрикс», «1С-Битрикс». Работает на 1С-Битрикс: Управление сайтом. Политика конфиденциальности
