Problem mit string und char

Opscript

Grünschnabel
( C++ )Problem mit string und char

Hallo,

absoluter C++ Neuling hat ein Problem.

Möchte Dateien von einem Ordner in einen anderen Ordner kopieren und bin dabei
in Zeile 30 nicht mehr weiter gekommen.

Frage:
Wie bekomme ich die Variablen ordner1 + arr[x] und ordner2 + arr[x] in Zeile 30 wieder zusammen.


Fehlermeldung:
30 C:\Dev-Cpp\XXXXXX\XXXXXXX.cpp cannot convert `std::basic_string<char, std::char_traits<char>, std::allocator<char> >' to `const CHAR*' for argument `1' to `BOOL CopyFileA(const CHAR*, const CHAR*, BOOL)'.

Hier den Qellcode:
Code:
#include <cstdlib>
#include <cstring>
#include <cstdio>
#include <iostream>
#include <dirent.h>
#include <windows.h>

using namespace std;

int main()
{
    WIN32_FIND_DATA dir;
    HANDLE fhandle;
    string arr[100];
    char ordner1[] = "C:\\tmp\\";
    char ordner2[] = "C:\\tmp2\\";
    int i =0;
    // Verzeichnis auslesen 
    if ((fhandle = FindFirstFile("C:\\tmp\\*.*", &dir)) != INVALID_HANDLE_VALUE) {       
       while(FindNextFile(fhandle,&dir)){       
         arr[i] = dir.cFileName;         
         i++;
       }
    } 
    FindClose(fhandle);
    
    for(int x=0;x < i;x++){
      if(arr[x] != ".."){
         //Geht bekanntlich nicht, da char und string nicht zu const char werden können!
         if(CopyFile((ordner1 + arr[x]),(ordner2 + arr[x]), true)==0){
            cout<<"Fehler!";
         }
      }
    }
    system("PAUSE");
    return EXIT_SUCCESS;
}

Würde mich sehr über Eure Hilfe freuen.




_______________________________________________________________________________________________
 
Zuletzt bearbeitet:
Sollte so gehen:
C++:
string strSrc = ordner1 + arr[x];
string strDst = ordner2 + arr[x];

if( CopyFile(strSrc.c_str(), strDst.c_str(), true) == 0)
{
    cout<<"Fehler!";
}
BTW: Warum definierst du "ordner1" und "ordner2" nicht auch als string?

Gruß
MCoder
 
Zurück