Fájl műveletek ShellAPI eszközök


Fájlműveleteket ShellAPI eszközökkel.

Fájlműveleteket ShellAPI eszközökkel.

hNameMappings
Object kezelni megjeleníti a fájl nevét tartalmazó tömböt SHNAMEMAPPING struktúrákat. Minden szerkezet tartalmazza a régi és az új útvonal nevét minden fájlt áthelyezték, másolni vagy átnevezni. Ez az elem csak, ha a jelző FOF_WANTMAPPINGHANDLE.

lpszProgressTitle
A mutató egy karakterlánc, amellyel a címet a párbeszéd haladást mezőbe. Ez az elem csak, ha a jelző FOF_SIMPLEPROGRESS.

Megjegyzés.
Ha pFrom vagy csuklós nincs megadva, akkor a fájlokat venni az aktuális könyvtárban. Az aktuális könyvtár állítható be SetCurrentDirectory funkció és a nyereség függvény GetCurrentDirectory.

És most - példák.

Természetesen be kell helyeznünk a részben használ ShellAPI modult. ahol SHFileOperation definiált függvény.

Tekintsük a legegyszerűbb - fájlok törlése.

Felhívjuk figyelmét, hogy sem a zászlók beállítása. Ha nem akarja, hogy csak törölni a fájlokat, és mozgassa őket a kosárba, akkor telepíteni kell FOF_ALLOWUNDO zászló.

Az egyszerűség kedvéért a további kísérletekhez levelet funkció, amely létrehoz egy tömböt sorok puffer továbbítja azt paraméterként pFrom. Miután minden egyes sora a puffer egészül null bájt végén a lista - két nulla bájt. Szörnyen néz ki, de működik. Írhatsz egy szép, egyszerű lustaság.

Végül a funkció törli a fájlt át azt a nevek listáját. ToRecycle paraméter határozza meg, hogy a fájlok kerülnek át a Lomtár, vagy törölni. A függvény értéke 0, ha a művelet sikeres volt, és a nulla értéket, ha a kezében, hogy valaki nem nő ki a helyet, és hogy valaki beragadt funkció nevét nem létező fájlokat. Felhívjuk figyelmét, hogy szabad puffer Src egyszerű feladat, hogy nulla. Ha hiszünk a dokumentációban, memóriazavar nem történik, hanem éppen ellenkezőleg, van egy helyes megsemmisítése dinamikus tömb. Hogy, bár - ez agydaganat :-).

Ellenőrizze. Mint minden működik.

By the way, én mutatott vicces hiba - egy eljárás hívás Deletefiles így: „Test1” és „Test2” fájlok teljesen eltávolításra nélkül helyezi a kosárba, annak ellenére, hogy a megállapított FOF_ALLOWUNDO zászlót. Tanulság: ha használja SHFileOperation funkciót teljes elérési utakat, amikor csak lehetséges.
Nos, az a fájlok eltávolítása rendezve.

A következő funkció mozgatja a felsorolt ​​fájlok listán Src Cél. Mozgás az opció határozza meg, hogy egy fájlt mozgatni vagy másolni. AutoRename paraméter meghatározza, hogy a fájlok átnevezésére esetén a név konfliktus. Nos, ezt nézd meg. Nem baj (és kuda Nos ez lesz).

Van azonban egy másik lehetőség -, hogy mozog egy csomó kép, mindegyik a könyvtárban az egyik ülésen, de alig tudok képzelni, hogy ki lehet szükség.

Továbbra is az utolsó művelet - átnevezés.

Míg az összes.
Modul FileOp.pas (3K) van csatlakoztatva.