Herzlich Willkommen, lieber Gast!
  Sie befinden sich hier:

  Forum » C / C++ (WinAPI, Konsole) » Probleme mit Ordner verschieben?

Forum | Hilfe | Team | Links | Impressum | > Suche < | Mitglieder | Registrieren | Einloggen
  Quicklinks: MSDN-Online || STL || clib Reference Grundlagen || Literatur || E-Books || Zubehör || > F.A.Q. < || Downloads   

Autor Thread - Seiten: > 1 <
000
22.02.2011, 13:05 Uhr
improvin



Hallo Leute,ich habe da ein kleines Problem.

Ich will wenn man einen Laufwerksbuchstaben eingibt,dass der Ordner dorthin verschoben wird.

Mein Code:

C++:
#include <iostream>
#include <string>  
#include <windows.h>

using namespace std;

int main()
{
    cout << "1= Fortfahren" << endl;
  
    char laufwerk;  
    cout << "Laufwerksbuchstaben eingeben: " << endl;
    cin >> laufwerk;

    string ZielDatei = "X:\\myfile.txt";  
    ZielDatei[0] = laufwerk;
    cin.get();

    cout << "test" << 1 << "starting install\n";

    const char* Zeiger = ZielDatei.c_str();  
    CopyFileA( "test.txt", Zeiger, FALSE );

    cin.get();
    return 0;
}


Also ich will nun einfach,dass wenn ich den Laufwerksbuchstaben eingebe,ein ganzer Ordner zB( ordner1 der sich im selben Verzeichnis befindet) nach X kopiert wird (aber mit allen unterordnern) bitte helft,ist wichtig

Danke und Liebe Grüße.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
001
22.02.2011, 13:23 Uhr
ao

(Operator)


Aaalso ...

1. Das gehört nicht zu ANSI-C, sondern zu WinAPI, ich schubs es mal dorthin

2. Zum Verschieben von Files nimmt man besser MoveFile als CopyFile.

3. Für ganze Verzeichnisbäume gibts in der WinAPI nix Fertiges. Musst du dir zusammenbauen, über Directory Management Functions und FindFirstFile(Ex) / FindNextFile(Ex):

http://msdn.microsoft.com/en-us/library/aa363950.aspx
http://msdn.microsoft.com/en-us/library/aa364418.aspx
http://msdn.microsoft.com/en-us/library/aa364428.aspx

Oder lern, mit dem Windows Scripting Host umzugehen. Da gibts das FileSystemObject, das auch MoveFolder kann:

http://msdn.microsoft.com/en-us/library/465s5y8s.aspx
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
002
22.02.2011, 16:13 Uhr
0xdeadbeef
Gott
(Operator)


Ich hab hier etwas in der Art rumliegen. Es war ursprünglich mit wx, und ich hab's nur hastig umgeschrieben, aber das Konzept sollte klar werden:

C++:
void CopyFolderRecursive(std::string const &from, std::string const &to) {
  WIN32_FIND_DATA wfd;

  HANDLE h = FindFirstFile((from + "\\*.*").c_str(), &wfd);

  do {
    if((wfd.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY) &&
        std::string("." ) != wfd.cFileName &&
        std::string("..") != wfd.cFileName)
    {
      CreateDirectory((to + "\\" + wfd.cFileName).c_str(), NULL);

      CopyFolderRecursive(from + "\\" + wfd.cFileName,
                          to   + "\\" + wfd.cFileName);
    } else {
      CopyFile((from + "\\" + wfd.cFileName).c_str(),
               (to   + "\\" + wfd.cFileName).c_str(), FALSE);
    }
  } while(FindNextFile(h, &wfd));

  FindClose(h);
}


--
Einfachheit ist Voraussetzung für Zuverlässigkeit.
-- Edsger Wybe Dijkstra

Dieser Post wurde am 22.02.2011 um 16:17 Uhr von 0xdeadbeef editiert.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
Seiten: > 1 <     [ C / C++ (WinAPI, Konsole) ]  


ThWBoard 2.73 FloSoft-Edition
© by Paul Baecher & Felix Gonschorek (www.thwboard.de)

Anpassungen des Forums
© by Flo-Soft (www.flo-soft.de)

Sie sind Besucher: