PB avec system

enrageur Messages postés 54 Date d'inscription vendredi 22 octobre 2004 Statut Membre Dernière intervention 21 novembre 2008 - 18 janv. 2005 à 09:21
BruNews Messages postés 21040 Date d'inscription jeudi 23 janvier 2003 Statut Modérateur Dernière intervention 21 août 2019 - 18 janv. 2005 à 11:25
Je programme sous Visual C++ 6. Le programme fait une sauvegarde de donnees que je compresse avec arj. Pour cela j'utilise la commande system. Quand je veux charger les données, j'utilise un CFileDialog pour que l'utilisateur choisisse le fichier et ensuite la commande system pour decompresser. Mais la commande system ne marche pas qand j'utilise CFileDialog. Je change le nom du fichier car arj ne preznd en compte que des noms de fichier de 8 caracteres. Voici le code :

CFileDialog file(TRUE, NULL, NULL, OFN_HIDEREADONLY, " (*.arj)|*.arj|All Files (*.*)|*.*||", NULL);
file.m_ofn.lpstrInitialDir = m_initialLoadFile;

if ( file.DoModal() == IDOK )
{
m_initialLoadFile.Format("%s", file.GetPathName());
CreateDirectory("c:\\TEMP",NULL);
CopyFile(m_initialLoadFile,"c:\\SAVE\\load.arj",TRUE);
}
commande ="arj e c:\\SAVE\\load";
commande += " c:\\TEMP";
system(commande);


CFile::Remove("c:\\SAVE\\load.arj");

3 réponses

cs_Arnotic Messages postés 933 Date d'inscription dimanche 1 avril 2001 Statut Membre Dernière intervention 9 janvier 2012
18 janv. 2005 à 10:01
Dans ta ligne de commande je ne vois aucunement des noms de fichiers passés en paramètre mais des dossiers.

Pour moi "c:\\SAVE\\load" n'est pas un fichier mais le chemin d'un dossier.

@+
Arnotic,
Admin CS, MVP Visual C++
0
enrageur Messages postés 54 Date d'inscription vendredi 22 octobre 2004 Statut Membre Dernière intervention 21 novembre 2008
18 janv. 2005 à 11:04
Quang j'ecris: arj C:\\SAVE\\load, arj va chercher in fichier nomme load.arj dans le repertoir SAVE. Le problem c'est que quand j'execute la commande arj je dois etre sous la racine c:\. Or en parcourant et en selectionnant le le fichier a l'aide de CFileDialg, le path est changé automatiquement, il faudrait que je le remettre à la racine.
Merci pour ton aide si tu sais comment faire.
0
BruNews Messages postés 21040 Date d'inscription jeudi 23 janvier 2003 Statut Modérateur Dernière intervention 21 août 2019
18 janv. 2005 à 11:25
system() n'a rien a faire dans du code Windows que soit en MFC ou en API.
C'est ShellExecute() ou CreateProcess() qu'on utilise.

ciao...
BruNews, MVP VC++
0
Rejoignez-nous