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.
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ć:)