ExtractFilePath — Функция Delphi


ExtractFilePath — Функция Delphi

Мастера не судите строго (начинающий). Я понимаю, наверное это ерундовый вопрос, но нигде не могу найти на него ответ. При сохранении файла указываю путь — ExtractFilePath(ParamStr(0))+»file.txt»
Как сделать так, чтобы файл сохранялся здесь, но в отдельную папку?

Здесь -это в той папке где находится сама прога. Я так понимаю при использовании ExtractFilePath(ParamStr(0))+»file.txt»
файл сохраняется там же где и ЕХЕ

to Lord Warlock ты ответ знаешь?

вопрос сформулируй нормально, я ничего не понял

ExtractFilePath(ParamStr(0))+»\NewPapaka»+»\file.txt».
Только папку надо предварительно создать.

to Lord Warlock Допустим ехе будет находиться C:\MyProg. Мне необходимо чтобы созданный прогой файл сохранялся C:\MyProg\Files\file.txt Я не могу явно указать путь, так как не знаю где будет находиться прога, поэтому использую ExtractFilePath(ParamStr(0)). Может я что-то не правильно понимаю?

Ну тогда как написал iNew © (02.06.03 09:59)

Если подкаталога нет, он будет создан

to Lord Warlock, to iNew понял спасибо

Не работает. Если писать так, как подсказал iNew ExtractFilePath(ParamStr(0))+»\NewPapaka»+»\file.txt».
, то делфи воспринимает все вместе \NewPapaka\file.txt как название файла.
Так как подсказал Lord Warlock, выдается ошибка о несответствии типов boolean и string.

ForceDirectories((ExtractFilePath(ParamStr(0))+»\Files»);
AssignFile(F, ExtractFilePath(ParamStr(0))+»\Files\file1.txt»);

Const MyFolder=»\Files»;
var Path,FileName: String;

Клуб программистов

Delphi programming

Подписаться на рассылку:

ExtractFilePath

извлекает из полного имени файла название патча

|| function ExtractFilePath ( const FullFileName : string ) : string;

Описание:

Delphi функция ExtractFilePath извлекает из полного имени файла название патча.

Это — часть полного файлового имени вплоть до названия папки, но в отличие от ExtractFileDir, включая » \ » перед файловым именем.

Пример кода:

var
fullFileName : string;

begin
// Set up a full file name with drive and path
fullFileName := ‘C:\Program Files\Borland\Delphi7\Projects\Unit1.dcu’;

// Show the component parts of this full name
ShowMessage(‘Drive = ‘+ExtractFileDrive (fullFileName));
ShowMessage(‘Dir = ‘+ExtractFileDir (fullFileName));
ShowMessage(‘Path = ‘+ExtractFilePath (fullFileName));
ShowMessage(‘Name = ‘+ExtractFileName (fullFileName));
ShowMessage(‘Ext = ‘+ExtractFileExt (fullFileName));
end;

Результат выполнения:

Drive = C:
Dir = C:\Program Files\Borland\Delphi7\Projects
Path = C:\Program Files\Borland\Delphi7\Projects\
Name = Unit1.dcu
Ext = .dcu

ExtractFilePath — Функция Delphi

������ 1
function GetFileName(fname : String) : String;
var i : integer;
begin
Result := ExtractFileName(fname);
for i := Length(Result) downto 1 do
if Result = ‘.’ then
begin
Result := copy(Result, 1, i — 1);
break;
end;
end;

������ 2
function GetFileName(fname : String) : String;
begin
Result := ExtractFileName(fname);
while (Length(Result) > 0) and Result[Length(Result)] <> ‘.’ do
Delete(Result, Length(Result, 1));
end;

ExtractFilePath — Функция Delphi

1) На Раздел распространяются все Правила Форума.
2) Перед тем, как создать новый топик, убедитесь, что Вы читали Правила создания тем в Разделе.
3) Вопросы, не связанные с программированием (настройки MS Visual Studio, книги, библиотеки и т.д.),
обсуждаются в разделе C/C++: Прочее
4) Вопросы разработки .NET (Windows Form, C++/CLI и т.п.) приложений на Visual C++/C# обсуждаются в разделе .NET.
5) Нарушение Правил может повлечь наказание со стороны модераторов.

Во имя Ctrl, Alt и святаго Del, Enter!

Основам программирования не обучаю. Не интересно.

Вызов примерно такой:

Писал прям тут, мог налажать. Да. И эта функция пишет в pszFilePath путь без слэша на конце. А возвращает она либо 0 (когда ошибка), либо размер буфера, необходимый чтобы вместить строку.

Shell Path Handling Functions
———————————————————————————
This section describes the Microsoft® Windows® Shell path handling functions. The programming elements explained in this documentation are exported by Shlwapi.dll and defined in Shlwapi.h and Shlwapi.lib.

PathAddBackslash
Adds a backslash to the end of a string to create the correct syntax for a path. If the source path already has a trailing backslash, no backslash will be added.

PathAddExtension
Adds a file extension to a path string.

PathAppend
Appends one path to the end of another.

PathBuildRoot
Creates a root path from a given drive number.

PathCanonicalize
Canonicalizes a path.

PathCombine
Concatenates two strings that represent properly formed paths into one path, as well as any relative path pieces.

PathCommonPrefix
Compares two paths to determine if they share a common prefix. A prefix is one of these types: «C:\\», «.», «..», «..\\».

Илон Маск рекомендует:  Примеры из справочника CSS

PathCompactPath
Truncates a file path to fit within a given pixel width by replacing path components with ellipses.

PathCompactPathEx
Truncates a path to fit within a certain number of characters by replacing path components with ellipses.

PathCreateFromUrl
Takes a file URL and converts it to a Microsoft MS-DOS® path.

PathFileExists
Determines whether a path to a file system object such as a file or directory is valid.

PathFindExtension
Searches a path for an extension.

PathFindFileName
Searches a path for a file name.

PathFindNextComponent
Parses a path for the next path component.

PathFindOnPath
Searches for a file.

PathFindSuffixArray
Determines if a given file name has one of a list of suffixes.

PathGetArgs
Finds the command line arguments within a given path.

PathGetCharType
Determines the type of character with respect to a path.

PathGetDriveNumber
Searches a path for a drive letter within the range of ‘A’ to ‘Z’ and returns the corresponding drive number.

PathIsContentType
Determines if a file’s registered content type matches the specified content type. This function obtains the content type for the specified file type and compares that string with the pszContentType. The comparison is not case sensitive.

PathIsDirectory
Verifies that a path is a valid directory.

PathIsDirectoryEmpty
Determines whether or not a specified path is an empty directory.

PathIsFileSpec
Searches a path for any path delimiting characters (for example, ‘:’ or ‘\’ ). If there are no path delimiting characters present, the path is considered to be a File Spec path.

PathIsHTMLFile
Determines if a file is an HTML file. The determination is made based on the content type that is registered for the file’s extension.

PathIsLFNFileSpec
Determines whether or not a file name is in long format.

PathIsNetworkPath
Determines whether a path string represents a network resource.

PathIsPrefix
Searches a path to determine if it contains a valid prefix of the type passed by pszPrefix. A prefix is one of these types: «C:\\», «.», «..», «..\\».

PathIsRelative
Searches a path and determines if it is relative.

PathIsRoot
Parses a path to determine if it is a directory root.

PathIsSameRoot
Compares two paths to determine if they have a common root component.

PathIsSystemFolder
Determines if an existing folder contains the attributes that make it a system folder. Alternately indicates if certain attributes qualify a folder to be a system folder.

PathIsUNC
Determines if the string is a valid Universal Naming Convention (UNC) for a server and share path.

PathIsUNCServer
Determines if a string is a valid UNC for a server path only.

PathIsUNCServerShare
Determines if a string is a valid UNC share path, \\ server\ share.

PathIsURL
Tests a given string to determine if it conforms to a valid URL format.

PathMakePretty
Converts a path to all lowercase characters to give the path a consistent appearance.

PathMakeSystemFolder
Gives an existing folder the proper attributes to become a system folder.

PathMatchSpec
Searches a string using a MS-DOS wild card match type.

PathParseIconLocation
Parses a file location string containing a file location and icon index, and returns separate values.

PathQuoteSpaces
Searches a path for spaces. If spaces are found, the entire path is enclosed in quotation marks.

PathRelativePathTo
Creates a relative path from one file or folder to another.

PathRemoveArgs
Removes any arguments from a given path.

PathRemoveBackslash
Removes the trailing backslash from a given path.

PathRemoveBlanks
Removes all leading and trailing spaces from a string.

PathRemoveExtension
Removes the file extension from a path, if there is one.

PathRemoveFileSpec
Removes the trailing file name and backslash from a path, if it has them.

PathRenameExtension
Replaces the extension of a file name with a new extension. If the file name does not contain an extension, the extension will be attached to the end of the string.

PathSearchAndQualify
Determines if a given path is correctly formatted and fully qualified.

PathSetDlgItemPath
Sets the text of a child control in a window or dialog box, using PathCompactPath to make sure the path fits in the control.

PathSkipRoot
Parses a path, ignoring the drive letter or UNC server/share path parts.

PathStripPath
Removes the path portion of a fully qualified path and file.

PathStripToRoot
Removes all parts of the path except for the root information.

PathUndecorate
Removes the decoration from a path string.

PathUnExpandEnvStrings
Takes a fully qualified path, and replaces several folder names with their associated environment string.

PathUnmakeSystemFolder
Removes the attributes from a folder that make it a system folder. This folder must actually exist in the file system.

PathUnquoteSpaces
Removes quotes from the beginning and end of a path.

Copy/extract part of a File path?

How can I copy/extract part of a File path?

For example, say if I have this path: D:\Programs\Tools\Bin\Somefile.dat

how could I copy/extract it to make it like this:

Илон Маск рекомендует:  command в HTML

C:\Users\Bin\Somefile.dat

C:\Users\Tools\Bin\Somefile.dat

C:\Users\Programs\Tools\Bin\Somefile.dat

Notice that the examples above are taking part of the original path, and changing it to another directory. I think this is called Expand name or something maybe??

PS, I already know about ExtractFileName and ExtractFilePath etc, the path anyway could be dynamic in that it wont be a hard coded path, but ever changing, so these functions are likely no good.

Адрес и имя файла

Тип Variant

Бывают случаи, когда на этапе программирования мы еще не можем четко определить тип данных определенной переменной. В таком случае можно воспользоваться очень мощным типом Variant . Этот тип вводился в Delphi для поддержки технологии OLE ( Object Link and Embedding – внедрение и связь объектов). Такая технология широко используется в Windows для обмена данными между приложениями различного типа. С помощью OLE происходит вставка таблицы MS Excel в редактор текстов MS Word , или картинка из Paint легко вставляется в тот же редактор. В этой технологии Variant используется на каждом шагу, однако ему можно найти применение и в других случаях.

Переменные типа Variant могут принимать значения любого типа! Вы присваиваете такой переменной что угодно, а программа сама определяет ее тип на этапе выполнения. Давайте рассмотрим пример:

В этом примере во время выполнения программы тип переменной изменится 4 раза, и код выполнится корректно. Когда программа встречает тип Variant , она автоматически выделяет под нее память . Если значение не задано, переменной присваивается ноль.

Совет: старайтесь использовать тип Variant только там, где это действительно необходимо! За удобство использования такой переменной тоже приходится платить. Переменная такого типа занимает значительно больше памяти, чем переменная любого другого типа. Процессору мы тоже задаем лишнюю работу, ведь сначала нужно определить тип данных в переменной, затем присвоить этот тип самой переменной, и т.п. Кроме того, переменные типа Variant очень сложно отлаживать в больших программах. Складывая, к примеру, строку и целое число , вы можете получить совсем не тот результат, который ожидали!

Как вы считаете, какой результат окажется в конце концов в переменной v1 ? На первый взгляд, результат очевиден: число 16. Однако не спешите с выводами. Когда операторы вычисления имеют равный приоритет, они выполняются слева – направо. В данном примере вначале объединятся строки, в результате чего получится строка «15». Затем эта строка преобразуется в целое число , и к нему будет прибавлено число 10. Поэтому результат сложения – число 25.

Функции для работы с именем файла

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

Там, где приходится работать с файлами, требуется уметь обрабатывать и имя файла : вычленять только имя или только адрес файла, диск , на котором файл находится, или расширение имени файла . Ниже представлен список функций, которые позволяют решить все эти задачи.

Функция ExtractFileName()

Функция возвращает имя файла без имени диска и каталогов, извлекая его из полного имени файла FileName . В качестве параметра указывается полный путь и имя файла .

Функция ExtractFilePath()

Функция возвращает путь к файлу, извлекая его из полного имени файла. Если имя файла не содержит ни имя каталогов, ни имя диска, то функция возвращает пустую строку. Подобное же действие выполняет функция ExtractFileDir() . Отличие этих функций в том, что в конце возвращаемого адреса функции ExtractFilePath() есть знак «\», а функция ExtractFileDir() этот знак не устанавливает:

Функция ExtractShortPathName()

Функция конвертирует длинное имя файла в DOS-формат, так называемый, 8.3. Этот формат подразумевает, что имя файла или папки может быть длиной максимум 8 символов, а затем, после точки, может присутствовать расширение имени файла из 3-х символов. Если имя папки (файла) имеет больше символов, оно будет обрезано до 8 символов.

Если указанный файл или каталог не существует, то функция возвращает пустую строку. Параметр может представлять собой полное имя файла. Если указанный файл не существует, то функция возвращает пустую строку. Пример:

Процедура ProcessPath()

Процедура анализирует полное имя файла и возвращает отдельно имя диска, каталог и имя файла . Если файл не существует, то возникает ошибка. Когда полное имя файла содержит больше одного каталога, также возникает ошибка.

Функция ExtractFileDrive()

Функция возвращает имя диска, извлеченное из полного имени файла. Если указанное имя файла не содержит имя диска, то функция возвращает пустую строку. Для имени в UNC формате (сетевое имя) возвращается строка в формате ‘\\ \ ‘.

Илон Маск рекомендует:  Что такое код sqlприкладное программирование

Функция ExtractFileExt()

Функция возвращает расширение файла, имя которого указано в параметре. Результирующая строка включает в себя символ точки и символы расширения файла. Если указанное имя файла не имеет расширения, то функция возвращает пустую строку. Пример:

Пишем программу

Чтобы усвоить, как работают эти функции, создадим новое приложение . Форму сразу переименуйте в fMain , а проект сохраните под названием fname в отдельной папке. На форму установите Edit , здесь будет отображаться полное имя файла . Сразу под ней установите Label , тут будет отображаться результат работы функций. Очистите текст и у Edit и у Label . Ниже бросьте на форму кнопку, и напишите на ней «Открыть файл «. Рядом с ней бросьте OpenDialog , он нам понадобится для открытия нужного файла. Еще ниже сгруппируйте 6 кнопок, на которых напишите:

Delphi идет вверх по каталогу, используя ExtractFilePath

Я использую этот код:

чтобы получить путь к файлу .ini , но я хочу перейти на 2 каталога, чтобы файл .ini не находился в папке DEBUG.

Я попробовал это:

Но не сработало.

Я использую эту функцию:

Таким образом, он будет работать как в том случае, если файл находится в каталоге по умолчанию при компиляции из IDE, так и при запуске из установочного каталога.

Используйте EXECPATH, если вы хотите, чтобы истинный каталог, в котором находится файл .EXE, и XPATH, если вам нужен «логический» каталог (т.е. Если вы находитесь в \Win32\Debug и т.п., Выходите из этого).

Существует довольно много возможностей подняться на один каталог вверх. Некоторые из них включают в себя:

ExtractFilePath

Extract the path from a filename.

Declaration

Source position: finah.inc line 23

Description

ExtractFilePath returns the path part (including driveletter) from FileName . The path consists of all characters before the last directory separator character (‘/’ or ‘\’), including the directory separator itself. In case there is only a drive letter, that will be returned.

The full filename can always be reconstucted by concatenating the result of ExtractFilePath and ExtractFileName.

Errors

See also

Extract the filename part from a full path filename.

Extract the path from a filename.

Extract the drive and directory part of a filename.

Extract the drive part from a filename.

Return the extension from a filename.

Extract a relative path from a filename, given a base directory.

ExtractFilePath — Функция Delphi

Модератор: Модераторы

ExtractFilePath UNICODE?

использую следующий путь к программе, но сейчас переименовал папку на русский язык и ничего не идет, одни вопросики. Как я понимаю эта функция не понимает Unicode. Как заставить ее это понимать?

Re: ExtractFilePath UNICODE?

Re: ExtractFilePath UNICODE?

Да уже все перепробовал. не идет и все!

Код: Выделить всё INI := TIniFile.Create(SysToUTF8(ExtractFilePath(Application.ExeName)) + ‘Config.ini’);
и
INI := TIniFile.Create(ExtractFilePath(SysToUTF8(Application.ExeName)) + ‘Config.ini’);

Re: ExtractFilePath UNICODE?

Re: ExtractFilePath UNICODE?

ProgramDirectory это что за функция? Она работает и под Линукс и Мак?

Re: ExtractFilePath UNICODE?

Re: ExtractFilePath UNICODE?

Не идет и все . даже с этим не хочет:

Код: Выделить всё function GetCurrentDirUTF8: String;

Директорию правильно отображает, узнает русский буквы, но ini создает в папке с крокосябами. Может Create виноват?

Беглый обзор модуля IOUtils.pas. Часть 3: работа с TPath в Delphi 2010. Заключение.

Итак, сегодня третья заключительная часть краткого обзора нового модуля Delphi 2010 — IOUtils.pas. Рассматриваем работу с классом TPath.
В начале кратко о том, для чего можно использовать класс. Судя по составу методов, TPath можно использовать для проверки путей к файлам и директориям, извлекать из пути имя и расширения файла, проверять правильность составления пути к файла и директориям и т.д. Рассмотрим эти методы более подробно.

1. Проверка правильности пути и имени файла

Для проверки валидности символов в пути и имени файла используются следующие методы:

При этом IsValidPathChar провряет валидность символа в пути и если символ — это:

то функция возвращает False.
Соответственно IsValidFileNameChar возвращает false, если символ:

Соответственно методы HasValidPathChars и HasValidFileNameChars проверяют уже всю строку, а не отдельный символ. При этом UseWildcards определяет будут ли учитываться символы «дикой карты» при проверке.
Для HasValidPathChars такими символави являются:

а для HasValidFileNameChars

Если при проверке строки в ней находится один или несколько символов дикой карты, то пезультат всё равно будет true.

Работа с префиксами

Следующие методы проверяют какой путь задан в Path.

Соответственно, первые два метода относятся к проверке того является ли Path UNC-путем вида:

Третий метод и четвертый определяют является ли путь обчным локальным вида:

и содержит ли путь имя локального диска.

Работа файлами и папкой Temp

Рассмотрим несколько методов, которые можно использовать для работы с файлами:

Метод GetRandomFileName, как понятно из названия, возвращает абсолютно случайное название файла, например:

GetTempFileName возвращает имя, наиболее подходящее для временного, т.е. вида:

Понравилась статья? Поделиться с друзьями:
Кодинг, CSS и SQL