kostenloser Webspace werbefrei: lima-city


C++: If exist?

lima-cityForumProgrammiersprachenC/C++ und D

  1. Autor dieses Themas

    j***e

    Ich hab jetzt schon l?nger kein Programm in C++ mehr geschrieben, von daher im voraus sorry, wenn ich irgendwas simples vergessen habe sollte :wink:

    Wei? jemand, wie ich in einem Ansi C++ Programm pr?fen kann, ob eine
    bestimmte Datei (von der man den genauen Pfad kennt) existiert? Und wenn
    sie existiert, br?uchte ich "true" als Best?tigung.
  2. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

  3. h****d

    Meinst du vielleicht sowas hier?

    Also du suchst nach einer Datei, und wenn diese existiert, (oder wenn der Pfad richtig ist) soll eine postive antwort kommen?

    #include <iostream>
    #include <fstream>
    #include <string>
    using namespace std;

    int main()
    {
    ifstream inp;
    ofstream out;
    string myFileName;

    myFileName = "mydata.txt";
    inp.open(myFileName.c_str(), ifstream::in);
    inp.close();
    if(inp.fail())
    {
    inp.clear(ios::failbit);
    cout << "Writing to file..." << myFileName.c_str() << endl;
    out.open(myFileName.c_str(), ofstream::out);
    out << "Hallo Welt" << endl;
    out.close();
    }
    else
    {
    cout << "Error...file """ << myFileName.c_str() << """ exists" << endl;
    }
    return 0;
    }


    ===========================================

    oder vielleicht so:

    void main()
    {

    if( open("somefile.txt", O_CREAT + O_EXCL) == -1)
    printf("Datei existiert");

    else
    printf("Datei existiert nicht");
    }


    Ich denke eher, das 2 Beispiel ist was du suchst. Musst du halt sagen :)!

    Ich hoffe, ich habe keinen M?ll hingeschrieben




  4. Autor dieses Themas

    j***e

    "O_CREAT + O_EXCL) == -1"

    Was bewirkt das hier? Ist der letzte code auch auf C++ ?bertragbar? (ausgenommen printf nat?rlich)
  5. h****d

    O_CREAT: Datei erzeugen, falls nicht vorhanden;
    O_EXCL: In Verbindung mit O_CREAT: Fehler zur?ckgeben, falls Datei bereits existiert.
  6. 0******a

    Nee, sowas meinte er nicht. Aber er hat auch nicht gesagt, f?r welches Betriebssystem bzw. welchen Compiler er das haben will.
    Die meisten Compiler unterst?tzen unter vielen Betriebssystemen die Funktion access() (bzw. _access()), was aber nicht zum ANSI C Standard geh?rt.
    Unter ISO C++ gibt es nichts vergleichbares. Da m?sstest du halt versuchen die Datei zu ?ffnen und kannst nur anhand des Fehlercodes sehen, bo die Datei ?berhaupt vorhanden ist oder warum du keinen Zugriff dazu hast (ungen?gende Rechte z.B.).
  7. Autor dieses Themas

    j***e

    Naja, ok, ich schaue mal ob ich diese pr?fung nicht irgendwie umgehen kann :-/

    Dev-C++
    Windows XP
  8. 0******a

    Wenn du als Compiler f?r Dev-C++ gcc benutzt, dann sollte access() funktionieren. Probiers mal aus. Sonst poste nochmal mit der Angabe, welcher Compiler bei dir in der von dir angegebenen IDE :-p eingetragen ist.
  9. Autor dieses Themas

    j***e

    Jaja, ^^ ich benutze eben den Compiler, der standardm??ig bei Dev-C++ v4 dabei ist.
  10. 0******a

    Also die GCC-Suite... Probier es doch mal aus mit access() und poste auch mal, ob es funktioniert hat.
  11. Autor dieses Themas

    j***e

    Naja, ich muss erstmal raussuchen wie man access() anwendet, und hoffe dass es dann klappt.

    /Edit: ich finde nichts zu access()

    soll das ungef?hr so ablaufen:

    bool temp;

    temp = access("C:\\bla.txt");

    ?
  12. 0******a

    Frag doch einfach... *g*
    int access(const char * pfad_und_dateiname, int abfragemodus);

    "pfad_und_dateiname" ist ja klar.
    "abfragemodus": 4 m?gliche Werte
    0 = Existiert die Datei ?berhaupt?
    2 = Habe ich Schreibzugriff?
    4 = Habe ich Lesezugriff?
    6 = Habe ich Lese- und Schreibzugriff?

    Der R?ckgabewert ist 0, wenn die Abfrage erfolgreich war (Datei existiert bzw. Berechtigung vorhanden). Ansonsten ist der R?ckgabewert -1.
  13. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

Dir gefällt dieses Thema?

Über lima-city

Login zum Webhosting ohne Werbung!