Video: Writing 2D Games in C using SDL by Thomas Lively 2025
Åh, kopiering af en fil - noget så simpelt, det sker hele tiden. Kopier denne fil der; kopiér den fil her. Men hvad sker der præcist, når du kopierer en fil? Du opretter faktisk en ny fil, og udfylder den med samme indhold som den oprindelige fil. Og hvordan gør du det?
Det lyder som om du skal læse hver eneste byte fra den første fil og skrive den til den anden. Big-time yuck.
Men for at gøre sagen værre, betyder kopiering af en fil, at du skal sørge for, at du kopierer det nøjagtigt det samme, at du ikke ved et uheld takker en ekstra 0 eller to i slutningen af filen, eller en ekstra vognretur eller linefeed i slutningen af filen (hvilket kan ske, når du kopierer en tekstfil).
Når alt er gjort, skal de to filer være identiske - indeholder ikke kun samme oplysninger , men også samme størrelse .
Og på toppen af alt det gør de fleste gode kopieringsrutiner endnu mere! De giver den nye fil en dato, der matcher datoen for den oprindelige fil, og de vil indstille alle attributterne - inklusive skrivebeskyttet, hvis originalen er en skrivebeskyttet fil. (Hvis filen er skrivebeskyttet, må du måske ikke kopiere den i første omgang …)
Det er ikke så nemt at kopiere en fil, så længe!
Hvis du programmerer i Windows, har du held og lykke! Så længe du ikke bruger den gamle Windows 3. 1, får du en CopyFile-funktion! For at gøre dig klar til at bruge det, inkluderer du linjen #include i din ansøgning. Så er her alt hvad du skal gøre:
CopyFile ("c: / dog. Txt", "c: / dog2. Txt", TRUE);
Dette kopierer fra c: / hund. txt til c: / dog2. txt. Men læg mærke til den endelige parameter: Det er ordet SAND i alle hovedstæder. Hvad er det? Det er en præprocessor-makro defineret et sted i tarmene i Windows-header-filerne.
Du skal bruge enten TRUE eller FALSE, når du ringer til nogen af Windows-funktionerne. Det skyldes, at i de gamle dage C, da de tidlige versioner af Windows blev opfundet, var der ingen bool-type. De ressourcefulde mennesker i slutningen af det 20. århundrede måtte definere deres egne TRUE og FALSE som heltal (normalt henholdsvis 1 og 0 henholdsvis 0 og 1).
Og forresten, den sidste parameter i CopyFile fortæller funktionen, hvad man skal gøre, hvis filen du kopierer allerede eksisterer: SAND betyder ikke, at den eksisterende fil overskrives. bare afbryde FALSE betyder overskriv det.