begin process at 2012 05 29 08:21:57
  Trouver un code source :
 
dans
 
Accueil > Forum > 

Archive C/C++

 > 

Archives

 > 

Divers

 > 

Erreur dans une fonction maison :(


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

Erreur dans une fonction maison :(

mercredi 30 novembre 2005 à 15:54:55 | Erreur dans une fonction maison :(

lamoueste

voila mon petit bout de code qui copie tous les fichiers d'un repertoire(c:\t) vers un autre repertoire (c:\Zipper_Vtfw32) temporaire mais j'ai des erreurs lorsqu'il s'agit de fichier qui ne sont pas d'extension txt ou bin... si quelqu'un a une idee pour modifier cette fonction merci d'avance :)

void CTestDlg::OnOK()
{
// TODO: Add extra validation here
MyCopyDirectoryRec("c:\\t");

CDialog::OnOK();
}

void MyCopyDirectoryRec(CString rep)
{
char NewFileNameDebug[]={"c:\\Zipper_Vtfw32\\"};
char FileNameDebug[MAX_PATH];
BOOL bErr = false;
unsigned int cpt = 0;
    WIN32_FIND_DATA FindFileData;
    strcpy(FileNameDebug,rep);
    strcat(FileNameDebug,"\\*.*");
    HANDLE hFind = FindFirstFile(FileNameDebug, &FindFileData);
    if (hFind==INVALID_HANDLE_VALUE)
        return;
    DWORD a = 0;
    while (cpt<5)//(a != ERROR_NO_MORE_FILES)
    {
try
{
    FindNextFile(hFind, &FindFileData);
}
catch( DWORD a )
{
    a = GetLastError();
bErr = true;
}//end catch

        if (bErr == false)
{
            if (strcmp(FindFileData.cFileName,".")!=0)
{
strcpy(FileNameDebug,rep);
strcat(FileNameDebug,"\\");
                strcat(FileNameDebug,FindFileData.cFileName);
char NewFileNameDebug[] ={"c:\\Zipper_Vtfw32\\"};
strcat(NewFileNameDebug,FindFileData.cFileName);
CopyFile(FileNameDebug,NewFileNameDebug,0);
            }
        }
if(a == ERROR_NO_MORE_FILES)
break;
cpt++;
    }
    FindClose(hFind);
}
mercredi 30 novembre 2005 à 17:54:31 | Re : Erreur dans une fonction maison :(

BruNews

Administrateur CodeS-SourceS
Réponse acceptée !

Aucun besoin de try catch ici, API retourne toujours un code d'erreur mais n'en déclenche jamais, ça ne fait que grossir inutilement ton exe final et surtout le ralentir.

void MyCopyDirectoryRec(char *repsrc)
{
  WIN32_FIND_DATA wfd;
  HANDLE hfind;
  char szsrc[264], *c;
  char szdst[264], *d;
  DWORD r;
  r = strlen(repsrc);
  if(strlen(repsrc) >= MAX_PATH) return: // PAS BON
  c = szsrc + r; // c POINTE FIN DE DIR DESTINATION
  // copie ton chemin dans szsrc
  strcpy(szsrc, repsrc);
  // ajoute un '\\' si n'y est pas et place pointer c juste derrière ce '\\'
  if(*(c-1) != '\\') *c++ = '\\';
  strcpy(c, "*.*");
  hfind = FindFirstFile(buf, &wfd);
  if(hfind == INVALID_HANDLE_VALUE) return;
  strcpy(szdst, "d:\\mondossier\\"); // A CHANGER
  d = szdst + 14; // A CHANGER PAR LONGUEUR DOSSIER AU DESSUS
 
  do {
    if(wfd.cFileName[0] != '.') {
      strcpy(c, wfd.cFileName); // FICHIER SOURCE
      strcpy(d, wfd.cFileName); // FICHIER DESTINATION
      CopyFile(szsrc, szdst, 0);
    }
  } while(FindNextFile(hfind, &wfd));
  FindClose(hfind);
}


ciao...
[ Lien ]
BruNews, MVP VC++



Cette discussion est classée dans : strcat, filenamedebug, newfilenamedebug, hfind, findfiledata


Répondre à ce message

Sujets en rapport avec ce message

Findfirstfile ? [ par lamoueste ] bonjour a tous alors voila j'ai un petit souci avec cette fonction, le findfirstfile retourne un invalid handle value et je ne sais pas a quoi c'est d Liste de fichiers d'un rep [ par kharbout ] Bonjour,Je m'excuse si ma question vous parait bête, je suis débutant on va dire.Je voudrais une aide pour lister la liste des fichiers d'un rep dont Dossier [ par angsthase ] Bonjour à tous! Voici un petit bout de programme que j'ai recupérer sur 'msdn' et  que je n'arrive pas à faire fonctionner. C'est dû au paramètre qui Lister les fichiers d'un dossier [ par angsthase ] /*Bonjour,  je voudrais lister les fichier qui se trouve dans un dossier. ( ici le dossier par défaut); Lorsque je lance mon code, il me fait bien la Problème de listage de fichiers [ par graall ] Bonjour,j'ai un problème avec cette fonction :void Include::MakeHtml(){    char include_dir[_MAX_DIR] = "d:\\";     HANDLE hfind;    WIN32_FIND_DATA w string dans char ?? [ par CCJ ] bonjour !! voici mon code : char password[7]; void pass() { password="";     //ligne 17 if (chiffre[1]==true) { password=strcat(password,ni[1]); }els string ki foire? [ par CCJ ] je sais que je soul mais bon la j'ai beau lire mes books dans tous les sens pas de reponses a mes question . mon bleme c'est que je veu concatener des Repertoire et liste chainée [ par max33fr ] Bonjour,J'aimerais lister le contenu d'un répertoire (fichiers et dossier) et mettre ces élements dans une liste.J'arrive à lister les fichiers conten Problème : répertoire, fichiers et récursivitée. [ par yserver ] Bonjour,Cette fonctions marche très bien, mais produit une sortie inattendu pour moi. J'ai beau chercher je ne trouve pas la raison de ce résultat.ulN Chargement de dll incluse dans les ressources [ par Mastersam ] Bonjour j'ai un problème pour charger une dll situé en ressource dans une autre dll, j'ai à présent ceci :fichier .rclibrarydll BINARY "dllconstructeu


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

A découvrir



 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,546 sec (4)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales