FileCtrl

wypoker

Moduł FileCtrl zawiera metody ułatwiające operowanie na systemie plików, zwłaszcza operacje na ścieżkach. Posiada kilka bardzo przydatnych funkcji, o których zwykle się zapomina:

  • function MinimizeName(const Filename: TFileName; Canvas: TCanvas; MaxLen: Integer): TFileName;

    Funkcja skraca pełną ścieżkę do pliku, podaną jako pierwszy parametr (Filename) w sposób aby zmieściła się na płótnie Canvas (obiekt Canvas na którym rysujemy) podanym jako drugi parametr, w polu o szerokości podanej jako patametr trzeci (MaxLen). W przypadku długich ścieżek, nie mieszczących się wpodanych ryzach, część ścieżki zostanie "wykropkowana".

Przykład:

  const
    app_path = 'C:\Program Files (x86)\4programmers\FileCtrl\Przykładowy program demonstrujący działanie funkcji MinimizeName\Aplikacja.exe';
 
  // Zwróci "C:\...\Aplikacja.exe"
  ShowMessage(MinimizeName(app_path, Form1.Canvas, 200));
 
  • function ForceDirectories(FolderPath: string): boolean;

    Funkcja tworzy trasę folderów wzdłuż ścieżki podanej jako parametr (FolderPath). Zwraca False w przypadku gdy parametr (FolderPath) jest pusty lub nie jest on prawidłową ścieżką.

Przykład:

var trasa_folderow : string;
 
trasa_folderow := 'C:\Folder pierwszy\Folder drugi\Folder trzeci\ Folder czwarty';
 
// Jeśli dana trasa folderów nie istnieje, stwórz ją!
if not DirectoryExists(trasa_folderow) then
  ForceDirectories(trasa_folderow);
  • procedure (const FullFileName: string; var Drive: Char; var DirPart: string; var FilePart: string);

    Funkcja przetwarza pełną ścieżkę dostępu do pliku (FullFileName) na literę dysku (Drive), ścieżkę dostępu do katalogu (DirPart) i nazwę pliku (FilePart). Wartości zwracane są przez referencję. Ważne jest, że plik znajdujący się pod ścieżką podaną jako pierwszy parametr MUSI istnieć, w przeciwnym razie funkcja nie zadziała (zwróci wyjątek EInOutError i wyświetli komunikat Invalid FileName).

Przykład:

const
  przykladowa_sciezka = 'C:\Program files (x86)\4programmers\FileCtrl\Aplikacja.exe';
 
var 
  LiteraDysku : Char; 
  SciezkaKatalogu, NazwaPliku : string;
begin
 
  // Plik pod podaną ścieżką MUSI istnieć by funkcja zadziałała
  ProcessPath(przykladowa_sciezka, LiteraDysku, SciezkaKatalogu, NazwaPliku);
 
  ShowMessage(LiteraDysku);
  ShowMessage(SciezkaKatalogu);
  ShowMessage(NazwaPliku);
 
  // Zwróci:
 
  // LiteraDysku = 'C'
  // SciezkaKatalogu = '\Program files (x86)\4programmers\FileCtrl'
  // NazwaPliku = 'Aplikacja.exe'

UWAGA! Moduł FileCtrl jest zależny od platformy.

2 komentarzy

ale na szczęście nazwa tej procedury jest podana w przykładzie, więc spoko

brak nazwy procedury procedure (const FullFileName: string; var Drive: Char; var DirPart: string; var FilePart: string);
należałoby poprawić:)