Announcement

Collapse
No announcement yet.

Datei im Binäry-Modi öffnen, Inhalt auslesen und dann kopieren.

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • Datei im Binäry-Modi öffnen, Inhalt auslesen und dann kopieren.

    Hallo alle zusammen!

    Ich habe wieder mal ein Problem. Ich möchte eine geöffnete *.pst Datei kopieren.
    Die Datei muss hierzu im Binary-Mode geöffnet, der Inhalt ausgelesen und dann kopiert werden. Wie im Beispiel mit VB: http://www.vbarchiv.net/tipps/details.php?id=783

    Ich haben bisher probiert:

    void __fastcall TForm1::OffeneDateiKopieren(AnsiString quelle, AnsiString ziel)
    {
    AnsiString zS;
    if(strlen(ziel.c_str()) <= 3)
    zS = ziel + ExtractFileName(quelle);
    else
    zS = ziel + "\\"+ ExtractFileName(quelle);
    ShowMessage(zS);
    ifstream in(quelle.c_str() ,ios_base::in | ios_base::binary);
    in.clear();
    in.seekg (0L, ios::beg);
    ofstream out(zS.c_str(),ios_base:ut | ios_base::binary);
    out << in.rdbuf();
    out.close();
    in.close();
    }

    Wenn die *.pst Outlook Datei geöffnet ist, wird im Ziel nur eine leere Datei angelegt 0 Byte gross.
    Hat jeman eine Idee?
    Wie kann mann die Quelldatei auslesen?
    Man lehrnt nie aus!

  • #2
    Warum benutzt du nicht CopyFile??

    Des Weiteren bietet AnsiString oder kurz String (Großschreibung beachten) alle Funktionen der Stringverarbeitung, so das strlen(ziel.c_str()) solche Konstrukte unnötig sind. Das Mischen von char oder string (kleinschreibung beachten) Funktionen mit Funktionen der Klasse String/AnsiString sollte vermieden werden. Bringt nur Verwirrung

    Wenn die *.pst Outlook Datei geöffnet ist, wird im Ziel nur eine leere Datei angelegt 0 Byte gross.
    Wenn Outlook das Ding im Griff hat, wirst du vermutlich keinen Zugriff darauf haben. Jeder kann mit CreateFile beim öffnen der Datei selbst angeben, ob andere lesend oder schreibend darauf zugreifen dürfen
    Christian

    Comment


    • #3
      Was nun?
      Wo blebt der Vorschlag?

      CopyFile() kann keine geöffnete *.pst Dateien kopieren.
      Man lehrnt nie aus!

      Comment


      • #4
        Der Vorschlag war CopyFile

        CopyFile() kann keine geöffnete *.pst Dateien kopieren.
        Du hast gelesen:

        Wenn Outlook das Ding im Griff hat, wirst du vermutlich keinen Zugriff darauf haben. Jeder kann mit CreateFile beim öffnen der Datei selbst angeben, ob andere lesend oder schreibend darauf zugreifen dürfen
        Christian

        Comment


        • #5
          Ergänzung:

          CopyFile() kann keine geöffnete *.pst Dateien kopieren.
          Das können die Streamklassen auch nicht

          Um sich die Rechte zum Kopieren zu geben, hängt es davon ab unter welchen Rechten man selbst läuft. Man kann sich durch das System die Rechte zu verschiedenen Operationen zuweisen lassen...


          Wo blebt der Vorschlag?
          s.o.
          Christian

          Comment


          • #6
            Ok!
            Ich benutze bereits CopyFile() und bin als administrator unterwegs.
            Was muss ich noch tun?
            Man lehrnt nie aus!

            Comment


            • #7
              Möglicherweise helfen die Methoden

              OpenProcessToken
              AdjustTokenPrivileges
              Christian

              Comment

              Working...
              X