Mikä olisi tyylikkäin tapa selvittää Visual C :lla onko tietyn niminen tiedosto olemassa, kun tarkoituksena on tehdä varmuuskopio määrätystä tiedostosta ennen kyseisen tiedoston päällekirjoittamista. Eli toiminta menee näin:
-Tiedosto Foo.x määrätyssä hakemistossa halutaan päällekirjoittaa toisella saman nimisellä, mutta ennen sitä ottaa varmuuskopio siitä.
-Varmuuskopio tulee samaan hakemistoon kuin alkuperäinen, mutta sen nimen eteen lisätään "Copy n of "
Eli ensimmäisellä kerralla tulos olisi "Copy 1 of Foo.x", toisella kerralla "Copy 2 of Foo.x" jne. Tuo onnistuisi varmaan sopivassa silmukassa siten että kokeillaan erilaisilla indekseillä avata sitä lukumoodissa ja kun avaus epäonnistuu käytetään viimeisintä indeksiä, mutta tuo ei välttämättä ole kovin tyylikästä.
Olisiko siistimpää tapaa ? Nykyisessä toteutuksessa hakemistopolku ja tiedoston nimi ovat erillisinä CStringeinä.
J.
-Tiedosto Foo.x määrätyssä hakemistossa halutaan päällekirjoittaa toisella saman nimisellä, mutta ennen sitä ottaa varmuuskopio siitä.
-Varmuuskopio tulee samaan hakemistoon kuin alkuperäinen, mutta sen nimen eteen lisätään "Copy n of "
Eli ensimmäisellä kerralla tulos olisi "Copy 1 of Foo.x", toisella kerralla "Copy 2 of Foo.x" jne. Tuo onnistuisi varmaan sopivassa silmukassa siten että kokeillaan erilaisilla indekseillä avata sitä lukumoodissa ja kun avaus epäonnistuu käytetään viimeisintä indeksiä, mutta tuo ei välttämättä ole kovin tyylikästä.
Olisiko siistimpää tapaa ? Nykyisessä toteutuksessa hakemistopolku ja tiedoston nimi ovat erillisinä CStringeinä.
J.
Vastaukset 2
Vanhimmat
Lueskella API:a ja sitten vasta alkaa koodaamaan. Yleensä riippumatta kielistä löytyy suoraan joku funktio, joka tekee tarkistuksen sulle.
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/vclib/html/_crt_file_handling.asp
Kato tuolta joku metodi, vaikka tiedoston avaus. Todennäköisesti se palauttaa false, jos tiedostoa ei löydy.
Sen sijaan että kopioit sen tiedoston ja kirjoitat sen päälle, eikö olisi kätevämpi nimetä se uudelleen? Tämä tapa olisi nopeampikin.
Ja kato tuolta pirun antamasta linkistä noi access funktiot. Siellä on oikein esimerkkikin.