====== Jouer avec les noms de fichiers (Pascal/Delphi/Lazarus) ====== ''Application.ExeName'' donne le nom de fichier du programme qui s’exécute. (ex:**C:\truc\machin.exe**) ===== Tests ===== Tester si le fichier existe avec ''FileExists'' ([[https://www.freepascal.org/docs-html/rtl/sysutils/fileexists.html|FileExists]]) ===== Extension ===== Changer l'extension d'un fichier avec ''ChangeFileExt'' Le code ci-dessous récupére le nom du fichier du programme qui s'execute et change son extension avec ''.ini''. Ne pas oublier le point dans les paramètres vFN:=Application.ExeName; vFN:=ChangeFileExt(vFN,'.ini'); [[https://www.freepascal.org/docs-html/rtl/sysutils/changefileext.html|ChangeFileExt]] ===== Répértoire ===== ExtractFileDir et ExtractFilePath ExtractFilePath contient le \ final, contrairement a ExtractFileDir. // le fichier MarkerList.json sera dans le méme repertoire que l'application vFilename := ExtractFilePath(Application.ExeName) + 'MarkerList.json'; vSL := TStringList.Create; try vSL.Text := GetAsJSON; vSL.SaveToFile(vFilename); finally vSL.Free; end; ===== Exemple ===== Uses sysutils; Procedure Testit(F : String); begin Writeln ('FileName : ',F); Writeln ('Has Name : ',ExtractFileName(F)); Writeln ('Has Path : ',ExtractFilePath(F)); Writeln ('Has Extension : ',ExtractFileExt(F)); Writeln ('Has Directory : ',ExtractFileDir(F)); Writeln ('Has Drive : ',ExtractFileDrive(F)); end; Begin Testit (Paramstr(0)); Testit ('/usr/local/bin/mysqld'); Testit ('c:\pp\bin\win32\ppc386.exe'); Testit ('/pp/bin/win32/ppc386.exe'); End. ===== Chercher ===== ==== Chercher un executable ==== * Rechercher un executable dans une suite de dossiers :\\ [[https://www.freepascal.org/docs-html/rtl/sysutils/exesearch.html]] ===== Sources et Ressources ===== * [[https://www.freepascal.org/docs-html/rtl/sysutils/extractfiledir.html]] * [[https://www.freepascal.org/docs-html/rtl/sysutils/getcurrentdir.html]]