Fájl programozás, leckék és példák létrehozása, megnyitása, bezárása és törlése

7. fejezet Fájlok kezelése összeszerelő programokban

Fájl létrehozása, megnyitása, bezárása és törlése

A fájl létrehozása és megnyitása Win32-ben egy CreateFile függvény segítségével történik. HANDLE CreateFi1eCLPCTSTR ipFileName, DWORD dwDesiredAccess. DWORD dwShareMode. LPSECURITY_ATTRIBUTES ipSecurityAttributes, DWORD dwCreationDistribution, DWORD dwFlagsAndAttributes. HANDLE hTemplateFile):






Ennek a funkciónak a paraméterei kétszög méretűek. Céljuk a következő (a paramétereket a soron következő írásmóddal írjuk le):

Ha sikeres, akkor a függvény új fájlleírást ad vissza az EAX regiszterben. Ha a funkció sikertelen, a funkció NULL értéket ad vissza az EAX regiszterben.

Ha sikeres, akkor a függvény nem nulla értéket ad vissza az EAX regiszterben. Ha a funkció sikertelen, a funkció NULL értéket ad vissza az EAX regiszterben.

Fájl áthelyezéséhez a Win32 két funkciót tartalmaz: MoveFile és MoveFi 1 eEx:
BOOL MoveFile (LPCTSTR lpExistingFileName, LPCTSTR lpNewFileNam):
BOOL MoveFileEx (LPCTSTR TpExistingFileName.LPCTSTR ipNewFileName.DWORD dwFlags):






A MoveFile függvény paraméterei az ASCIIZ karakterláncokra utalnak, a forrásfájl és a célfájl nevével. Funkció MoveFi 1 Az eEx további tulajdonságokkal rendelkezik a harmadik paraméter jelenléte miatt, amely meghatározza a mozgás jellemzőit:

Ezenkívül a MoveFi 1 eEx funkció lehetővé teszi a második paraméter helyének kijelölését a NULL értékre, ezzel szimulálva a Deletary I funkcióhívást.
Ha a MoveFile és a MoveFi 1 funkció sikeresen befejeződött, az eEx nem nulla értéket ad vissza az EAX regiszterben. Ha a függvény nem működik, a függvény NULL értéket ad vissza az EAX regiszterben.

prg07_30.asm - Win32-nporpaMMa konzolalkalmazás kutatásra: a MoveFile (Ex) API Win32 munkafunkció.
.
.adat
TitleText db 'Fájlok áthelyezése Win32'-re
s_file db "p", 0, a bemeneti fájl neve
d_file db "pi" .0: a kimeneti fájl neve
.kód
.
push offset d_file
push offset s_file
hívja a MoveFileA-t
cmp eax.O
jz kilépés: kilépés kudarc esetén

Nincs külön funkció a fájl átnevezésére, mivel nincs rá szükség - egy adott könyvtáron belüli fájl áthelyezése lényegében annak neve és átnevezése.

Fájl törléséhez használja a Deletion I e funkciót:
BOOL DeleteFile (LPCTSTR TpFileName);
Ennek egyetlen paramétere van - egy mutató egy ASCIIZ karakterláncra a törlendő fájl neve (elérési útja) mellett. Mielőtt törölné a fájlt, bezárja, de ez nem szükséges a Windows egyes verzióiban.
Ha sikeres, akkor a függvény nem nulla értéket ad vissza az EAX regiszterben. Ha a funkció sikertelen, a funkció NULL értéket ad vissza az EAX regiszterben.