Je débute en c++, uniquement avec les ressources du net, et
je cherche un moyen de faire lire par mon programme le contenu
d'un répertoire (comme la très classique commande dir).
J'ai cherché sans succès avec google et suis encore occuper
à fouiller les archives de cppfrance.com.
je cherche un moyen de faire lire par mon programme le contenu d'un répertoire (comme la très classique commande dir).
[...]
Le but final de l'opération est, tout simplement, de sauvegarder des données et de lire le répertoire pour vérifier si des données s'y trouvent déjà.
[...]
Par contre, comme l'OS peut cacher des informations en faisant croire que le fichier est sur disque, ni ta méthode ni la mienne n'offrent une sécurité absolue.
Heu, je ne crois pas que cela dérange l'OP. L'info qu'il cherche n'est pas : "mes données sont-elle physiquement sur le disque ?", mais "Y a-t-il un ficher de sauvegarde que je peux lire dans tel dossier".
-- Christophe de Vienne
Loïc Joly wrote:
oxidor trucidel wrote:
je cherche un moyen de faire lire par mon programme le contenu
d'un répertoire (comme la très classique commande dir).
[...]
Le but final de l'opération est, tout simplement, de sauvegarder des
données
et
de lire le répertoire pour vérifier si des données s'y trouvent déjà.
[...]
Par contre, comme l'OS peut cacher des informations en faisant croire
que le fichier est sur disque, ni ta méthode ni la mienne n'offrent une
sécurité absolue.
Heu, je ne crois pas que cela dérange l'OP. L'info qu'il cherche n'est
pas : "mes données sont-elle physiquement sur le disque ?", mais "Y
a-t-il un ficher de sauvegarde que je peux lire dans tel dossier".
je cherche un moyen de faire lire par mon programme le contenu d'un répertoire (comme la très classique commande dir).
[...]
Le but final de l'opération est, tout simplement, de sauvegarder des données et de lire le répertoire pour vérifier si des données s'y trouvent déjà.
[...]
Par contre, comme l'OS peut cacher des informations en faisant croire que le fichier est sur disque, ni ta méthode ni la mienne n'offrent une sécurité absolue.
Heu, je ne crois pas que cela dérange l'OP. L'info qu'il cherche n'est pas : "mes données sont-elle physiquement sur le disque ?", mais "Y a-t-il un ficher de sauvegarde que je peux lire dans tel dossier".
-- Christophe de Vienne
drkm
Loïc Joly writes:
Déjà, si on vérifie le type de retour de close, on doit être pas mal.
Il me semble même que l'on ne doit rien pouvoir faire de plus, en C++ standard.
Peut-être peut-on utiliser une fonction
bool closeAndWait( std::ofstream & file ) ;
qui ferme le fichier et utilise l'API de l'OS pour faire un flush du fichier sur le disque, un équivalent de sync(1) pour Unix.
--drkm, en recherche d'un stage : http://www.fgeorges.org/ipl/stage.html
Loïc Joly <loic.actarus.joly@wanadoo.fr> writes:
Déjà, si on vérifie le type de retour
de close, on doit être pas mal.
Il me semble même que l'on ne doit rien pouvoir faire de plus, en
C++ standard.
Peut-être peut-on utiliser une fonction
bool closeAndWait( std::ofstream & file ) ;
qui ferme le fichier et utilise l'API de l'OS pour faire un flush du
fichier sur le disque, un équivalent de sync(1) pour Unix.
--drkm, en recherche d'un stage : http://www.fgeorges.org/ipl/stage.html
Déjà, si on vérifie le type de retour de close, on doit être pas mal.
Il me semble même que l'on ne doit rien pouvoir faire de plus, en C++ standard.
Peut-être peut-on utiliser une fonction
bool closeAndWait( std::ofstream & file ) ;
qui ferme le fichier et utilise l'API de l'OS pour faire un flush du fichier sur le disque, un équivalent de sync(1) pour Unix.
--drkm, en recherche d'un stage : http://www.fgeorges.org/ipl/stage.html
drkm
Christophe de VIENNE writes:
Loïc Joly wrote:
oxidor trucidel wrote:
je cherche un moyen de faire lire par mon programme le contenu d'un répertoire (comme la très classique commande dir).
[...]
Le but final de l'opération est, tout simplement, de sauvegarder des données et de lire le répertoire pour vérifier si des données s'y trouvent déjà.
[...]
Par contre, comme l'OS peut cacher des informations en faisant croire que le fichier est sur disque, ni ta méthode ni la mienne n'offrent une sécurité absolue.
Heu, je ne crois pas que cela dérange l'OP. L'info qu'il cherche n'est pas : "mes données sont-elle physiquement sur le disque ?", mais "Y a-t-il un ficher de sauvegarde que je peux lire dans tel dossier".
Tiens, bizarre. J'avais également compris comme Loïc. Sans doute faudrait-il une clarification du PO.
--drkm, en recherche d'un stage : http://www.fgeorges.org/ipl/stage.html
Christophe de VIENNE <cdevienne@alphacent.com> writes:
Loïc Joly wrote:
oxidor trucidel wrote:
je cherche un moyen de faire lire par mon programme le contenu
d'un répertoire (comme la très classique commande dir).
[...]
Le but final de l'opération est, tout simplement, de sauvegarder
des données
et
de lire le répertoire pour vérifier si des données s'y trouvent déjà.
[...]
Par contre, comme l'OS peut cacher des informations en faisant
croire que le fichier est sur disque, ni ta méthode ni la mienne
n'offrent une sécurité absolue.
Heu, je ne crois pas que cela dérange l'OP. L'info qu'il cherche n'est
pas : "mes données sont-elle physiquement sur le disque ?", mais "Y
a-t-il un ficher de sauvegarde que je peux lire dans tel dossier".
Tiens, bizarre. J'avais également compris comme Loïc. Sans doute
faudrait-il une clarification du PO.
--drkm, en recherche d'un stage : http://www.fgeorges.org/ipl/stage.html
je cherche un moyen de faire lire par mon programme le contenu d'un répertoire (comme la très classique commande dir).
[...]
Le but final de l'opération est, tout simplement, de sauvegarder des données et de lire le répertoire pour vérifier si des données s'y trouvent déjà.
[...]
Par contre, comme l'OS peut cacher des informations en faisant croire que le fichier est sur disque, ni ta méthode ni la mienne n'offrent une sécurité absolue.
Heu, je ne crois pas que cela dérange l'OP. L'info qu'il cherche n'est pas : "mes données sont-elle physiquement sur le disque ?", mais "Y a-t-il un ficher de sauvegarde que je peux lire dans tel dossier".
Tiens, bizarre. J'avais également compris comme Loïc. Sans doute faudrait-il une clarification du PO.
--drkm, en recherche d'un stage : http://www.fgeorges.org/ipl/stage.html
oxidor trucidel
"Christophe de VIENNE" a écrit dans le message de news:newscache$va8e2i$db8$
Loïc Joly wrote:
oxidor trucidel wrote:
je cherche un moyen de faire lire par mon programme le contenu d'un répertoire (comme la très classique commande dir).
[...]
Le but final de l'opération est, tout simplement, de sauvegarder des données et de lire le répertoire pour vérifier si des données s'y trouvent déjà.
[...]
Par contre, comme l'OS peut cacher des informations en faisant croire que le fichier est sur disque, ni ta méthode ni la mienne n'offrent une sécurité absolue.
Heu, je ne crois pas que cela dérange l'OP. L'info qu'il cherche n'est pas : "mes données sont-elle physiquement sur le disque ?", mais "Y a-t-il un ficher de sauvegarde que je peux lire dans tel dossier".
Oui, c'est très exactement ça.
Désolé si je me suis mal fait comprendre;
-- Oxidor Trucidel
"Christophe de VIENNE" <cdevienne@alphacent.com> a écrit dans le message de
news:newscache$va8e2i$db8$1@guronzan.alphacent.com...
Loïc Joly wrote:
oxidor trucidel wrote:
je cherche un moyen de faire lire par mon programme le contenu
d'un répertoire (comme la très classique commande dir).
[...]
Le but final de l'opération est, tout simplement, de sauvegarder des
données
et
de lire le répertoire pour vérifier si des données s'y trouvent déjà.
[...]
Par contre, comme l'OS peut cacher des informations en faisant croire
que le fichier est sur disque, ni ta méthode ni la mienne n'offrent une
sécurité absolue.
Heu, je ne crois pas que cela dérange l'OP. L'info qu'il cherche n'est
pas : "mes données sont-elle physiquement sur le disque ?", mais "Y
a-t-il un ficher de sauvegarde que je peux lire dans tel dossier".
"Christophe de VIENNE" a écrit dans le message de news:newscache$va8e2i$db8$
Loïc Joly wrote:
oxidor trucidel wrote:
je cherche un moyen de faire lire par mon programme le contenu d'un répertoire (comme la très classique commande dir).
[...]
Le but final de l'opération est, tout simplement, de sauvegarder des données et de lire le répertoire pour vérifier si des données s'y trouvent déjà.
[...]
Par contre, comme l'OS peut cacher des informations en faisant croire que le fichier est sur disque, ni ta méthode ni la mienne n'offrent une sécurité absolue.
Heu, je ne crois pas que cela dérange l'OP. L'info qu'il cherche n'est pas : "mes données sont-elle physiquement sur le disque ?", mais "Y a-t-il un ficher de sauvegarde que je peux lire dans tel dossier".
Oui, c'est très exactement ça.
Désolé si je me suis mal fait comprendre;
-- Oxidor Trucidel
Loïc Joly
drkm wrote:
Loïc Joly writes:
ofstream os("PersoDD3.5.txt"); os << "Level 25" << endl; if (!os.close()) { cout << "Erreur de sauvegarde" << endl; }
Il me semblait que std::basic_ofstream<>::close() ne retournait pas de valeur.
Tiens, oui, je viens de le découvrir. Il fallait donc écrire : os.close(); if(!os) { cout << "Erreur de sauvegarde" << endl; }
Ne doit-on pas plutôt utiliser :
if ( ! os.rdbuf()->close() ) { // erreur }
Ca me semble plus lourd comme écriture. Et ce n'est pas équivalent (tout ce que je dis ici est sujet à caution, je ne suis pas un pro de cette partie du C++, comme ma petite bourde précédente le prouve) :
- Ca n'indique que si la fermeture s'est bien passée, pas s'il y a eu des problèmes précédent la fermeture. - Ca ne met pas à true le failbit d'os, ce qui peut (?) poser des problèmes.
-- Loïc
drkm wrote:
Loïc Joly <loic.actarus.joly@wanadoo.fr> writes:
ofstream os("PersoDD3.5.txt");
os << "Level 25" << endl;
if (!os.close())
{
cout << "Erreur de sauvegarde" << endl;
}
Il me semblait que std::basic_ofstream<>::close() ne retournait pas
de valeur.
Tiens, oui, je viens de le découvrir. Il fallait donc écrire :
os.close();
if(!os)
{
cout << "Erreur de sauvegarde" << endl;
}
Ne doit-on pas plutôt utiliser :
if ( ! os.rdbuf()->close() ) {
// erreur
}
Ca me semble plus lourd comme écriture. Et ce n'est pas équivalent (tout
ce que je dis ici est sujet à caution, je ne suis pas un pro de cette
partie du C++, comme ma petite bourde précédente le prouve) :
- Ca n'indique que si la fermeture s'est bien passée, pas s'il y a eu
des problèmes précédent la fermeture.
- Ca ne met pas à true le failbit d'os, ce qui peut (?) poser des problèmes.
ofstream os("PersoDD3.5.txt"); os << "Level 25" << endl; if (!os.close()) { cout << "Erreur de sauvegarde" << endl; }
Il me semblait que std::basic_ofstream<>::close() ne retournait pas de valeur.
Tiens, oui, je viens de le découvrir. Il fallait donc écrire : os.close(); if(!os) { cout << "Erreur de sauvegarde" << endl; }
Ne doit-on pas plutôt utiliser :
if ( ! os.rdbuf()->close() ) { // erreur }
Ca me semble plus lourd comme écriture. Et ce n'est pas équivalent (tout ce que je dis ici est sujet à caution, je ne suis pas un pro de cette partie du C++, comme ma petite bourde précédente le prouve) :
- Ca n'indique que si la fermeture s'est bien passée, pas s'il y a eu des problèmes précédent la fermeture. - Ca ne met pas à true le failbit d'os, ce qui peut (?) poser des problèmes.
-- Loïc
drkm
Loïc Joly writes:
- Ca n'indique que si la fermeture s'est bien passée, pas s'il y a eu des problèmes précédent la fermeture.
Ce qui était bien le but recherché.
- Ca ne met pas à true le failbit d'os, ce qui peut (?) poser des problèmes.
En effet. 27.8.1.7/4 :
void close();
Effects : Calls rdbuf()->close() and, if that function returns false, calls setstate(failbit)
std::basic_filebuf<>::close() ne retourne d'ailleurs pas un booléen, mais un filebuf. Je pense donc que tu as raison, sur la manière de tester la fermeture du fichier.
--drkm, en recherche d'un stage : http://www.fgeorges.org/ipl/stage.html
Loïc Joly <loic.actarus.joly@wanadoo.fr> writes:
- Ca n'indique que si la fermeture s'est bien passée, pas s'il y a eu
des problèmes précédent la fermeture.
Ce qui était bien le but recherché.
- Ca ne met pas à true le failbit d'os, ce qui peut (?) poser des problèmes.
En effet. 27.8.1.7/4 :
void close();
Effects : Calls rdbuf()->close() and, if that function returns
false, calls setstate(failbit)
std::basic_filebuf<>::close() ne retourne d'ailleurs pas un booléen,
mais un filebuf. Je pense donc que tu as raison, sur la manière de
tester la fermeture du fichier.
--drkm, en recherche d'un stage : http://www.fgeorges.org/ipl/stage.html
- Ca n'indique que si la fermeture s'est bien passée, pas s'il y a eu des problèmes précédent la fermeture.
Ce qui était bien le but recherché.
- Ca ne met pas à true le failbit d'os, ce qui peut (?) poser des problèmes.
En effet. 27.8.1.7/4 :
void close();
Effects : Calls rdbuf()->close() and, if that function returns false, calls setstate(failbit)
std::basic_filebuf<>::close() ne retourne d'ailleurs pas un booléen, mais un filebuf. Je pense donc que tu as raison, sur la manière de tester la fermeture du fichier.
--drkm, en recherche d'un stage : http://www.fgeorges.org/ipl/stage.html
M. B.
"oxidor trucidel" a écrit dans le message de news: 411ccae0$0$307$
Salut,
Je débute en c++, uniquement avec les ressources du net, et je cherche un moyen de faire lire par mon programme le contenu d'un répertoire (comme la très classique commande dir).
J'ai cherché sans succès avec google et suis encore occuper à fouiller les archives de cppfrance.com.
using System; using System.IO; using System.Collections;
public class RecursiveFileProcessor { public static void Main(string[] args) { foreach(string path in args) { if(File.Exists(path)) ProcessFile(path); else if(Directory.Exists(path)) ProcessDirectory(path); else Console.WriteLine("{0} is not a valid file or directory", path); } }
public static void ProcessDirectory(string targetDirectory) { string [] fileEntries = Directory.GetFiles(targetDirectory); foreach(string fileName in fileEntries) ProcessFile(fileName);
string [] subdirectoryEntries Directory.GetDirectories(targetDirectory); foreach(string subdirectory in subdirectoryEntries) ProcessDirectory(subdirectory); }
"oxidor trucidel" <oxidor@uf.net> a écrit dans le message de news:
411ccae0$0$307$ba620e4c@news.skynet.be...
Salut,
Je débute en c++, uniquement avec les ressources du net, et
je cherche un moyen de faire lire par mon programme le contenu
d'un répertoire (comme la très classique commande dir).
J'ai cherché sans succès avec google et suis encore occuper
à fouiller les archives de cppfrance.com.
using System;
using System.IO;
using System.Collections;
public class RecursiveFileProcessor
{
public static void Main(string[] args)
{
foreach(string path in args)
{
if(File.Exists(path))
ProcessFile(path);
else if(Directory.Exists(path))
ProcessDirectory(path);
else
Console.WriteLine("{0} is not a valid file or directory",
path);
}
}
public static void ProcessDirectory(string targetDirectory)
{
string [] fileEntries = Directory.GetFiles(targetDirectory);
foreach(string fileName in fileEntries)
ProcessFile(fileName);
string [] subdirectoryEntries Directory.GetDirectories(targetDirectory);
foreach(string subdirectory in subdirectoryEntries)
ProcessDirectory(subdirectory);
}
"oxidor trucidel" a écrit dans le message de news: 411ccae0$0$307$
Salut,
Je débute en c++, uniquement avec les ressources du net, et je cherche un moyen de faire lire par mon programme le contenu d'un répertoire (comme la très classique commande dir).
J'ai cherché sans succès avec google et suis encore occuper à fouiller les archives de cppfrance.com.
using System; using System.IO; using System.Collections;
public class RecursiveFileProcessor { public static void Main(string[] args) { foreach(string path in args) { if(File.Exists(path)) ProcessFile(path); else if(Directory.Exists(path)) ProcessDirectory(path); else Console.WriteLine("{0} is not a valid file or directory", path); } }
public static void ProcessDirectory(string targetDirectory) { string [] fileEntries = Directory.GetFiles(targetDirectory); foreach(string fileName in fileEntries) ProcessFile(fileName);
string [] subdirectoryEntries Directory.GetDirectories(targetDirectory); foreach(string subdirectory in subdirectoryEntries) ProcessDirectory(subdirectory); }
"oxidor trucidel" a écrit dans le message de news: 411ccae0$0$307$
Salut,
Je débute en c++, uniquement avec les ressources du net, et je cherche un moyen de faire lire par mon programme le contenu d'un répertoire (comme la très classique commande dir).
J'ai cherché sans succès avec google et suis encore occuper à fouiller les archives de cppfrance.com.
[...]
Oh merde, c'est du CSharp ...
Desole.
Ce qui est con, c'est que si tu avais précédé ton post en informant que c'était pas du C++ standard, car une solution standard n'existe pas, et que donc tu donne une solution VC++.NET only, et si cette solution, tu l'avais donnée en C++.NET (ce qui est trivial à partir de l'écriture C#), tu aurais pu faire un post intéressant.
-- Loïc
M. B. wrote:
"oxidor trucidel" <oxidor@uf.net> a écrit dans le message de news:
411ccae0$0$307$ba620e4c@news.skynet.be...
Salut,
Je débute en c++, uniquement avec les ressources du net, et
je cherche un moyen de faire lire par mon programme le contenu
d'un répertoire (comme la très classique commande dir).
J'ai cherché sans succès avec google et suis encore occuper
à fouiller les archives de cppfrance.com.
[...]
Oh merde, c'est du CSharp ...
Desole.
Ce qui est con, c'est que si tu avais précédé ton post en informant que
c'était pas du C++ standard, car une solution standard n'existe pas, et
que donc tu donne une solution VC++.NET only, et si cette solution, tu
l'avais donnée en C++.NET (ce qui est trivial à partir de l'écriture
C#), tu aurais pu faire un post intéressant.
"oxidor trucidel" a écrit dans le message de news: 411ccae0$0$307$
Salut,
Je débute en c++, uniquement avec les ressources du net, et je cherche un moyen de faire lire par mon programme le contenu d'un répertoire (comme la très classique commande dir).
J'ai cherché sans succès avec google et suis encore occuper à fouiller les archives de cppfrance.com.
[...]
Oh merde, c'est du CSharp ...
Desole.
Ce qui est con, c'est que si tu avais précédé ton post en informant que c'était pas du C++ standard, car une solution standard n'existe pas, et que donc tu donne une solution VC++.NET only, et si cette solution, tu l'avais donnée en C++.NET (ce qui est trivial à partir de l'écriture C#), tu aurais pu faire un post intéressant.
-- Loïc
Fabien LE LEZ
On Sat, 14 Aug 2004 09:44:12 +0200, Loïc Joly :
tu aurais pu faire un post intéressant.
Ce n'est pas le but d'un trolleur, si je ne m'abuse.
On Sat, 14 Aug 2004 09:44:12 +0200, Loïc Joly
<loic.actarus.joly@wanadoo.fr>:
tu aurais pu faire un post intéressant.
Ce n'est pas le but d'un trolleur, si je ne m'abuse.
Ce n'est pas le but d'un trolleur, si je ne m'abuse.
M. B.
"Loïc Joly" a écrit dans le message de news: cfkfl9$oor$
M. B. wrote:
Ce qui est con, c'est que si tu avais précédé ton post en informant que c'était pas du C++ standard, car une solution standard n'existe pas, et que donc tu donne une solution VC++.NET only, et si cette solution, tu l'avais donnée en C++.NET (ce qui est trivial à partir de l'écriture C#), tu aurais pu faire un post intéressant.
Il n'y a aucun interet a utiliser C++ sur .NET
MB
"Loïc Joly" <loic.actarus.joly@wanadoo.fr> a écrit dans le message de news:
cfkfl9$oor$1@news-reader3.wanadoo.fr...
M. B. wrote:
Ce qui est con, c'est que si tu avais précédé ton post en informant que
c'était pas du C++ standard, car une solution standard n'existe pas, et
que donc tu donne une solution VC++.NET only, et si cette solution, tu
l'avais donnée en C++.NET (ce qui est trivial à partir de l'écriture
C#), tu aurais pu faire un post intéressant.
"Loïc Joly" a écrit dans le message de news: cfkfl9$oor$
M. B. wrote:
Ce qui est con, c'est que si tu avais précédé ton post en informant que c'était pas du C++ standard, car une solution standard n'existe pas, et que donc tu donne une solution VC++.NET only, et si cette solution, tu l'avais donnée en C++.NET (ce qui est trivial à partir de l'écriture C#), tu aurais pu faire un post intéressant.