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
21041
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
1
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
21041
Date d'inscription
jeudi 23 janvier 2003
Statut
Modérateur
Dernière intervention
21 août 2019
19
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