OVH Cloud OVH Cloud

fileBox

27 réponses
Avatar
3dsman
salut je suis entrain d'essayer de faire une filebox (pour choisir un
fichier) qui doit etre multiOS (au moins win macOS et linux)

Et je ne sais pas du tout comment faire pour naviguer dans les
arborescences des différents systemes.

Qu'est ce qu'il y a comme specificité a chacun?
Est ce que les fonctions findfirst et findnext fonctionnent pour tous
ces systemes?
si non est ce qu'il existe des fonction qui marchent pour tous?

Enfin si vous avez des infos, tutoriels, ou mieux si quelqu'un a déja
fait ca et aurais un code a me montrer je suis preneur :-)

Merci d'avance

--
Ceci est une signature automatique de MesNews.
Site : http://mesnews.no-ip.com

10 réponses

1 2 3
Avatar
Jean-Marc Bourguet
3dsman writes:

si non est ce qu'il existe des fonction qui marchent pour tous?


boost en a si j'ai bonne memoire.

A+

--
Jean-Marc
FAQ de fclc++: http://www.cmla.ens-cachan.fr/~dosreis/C++/FAQ
C++ FAQ Lite en VF: http://www.ifrance.com/jlecomte/c++/c++-faq-lite/index.html
Site de usenet-fr: http://www.usenet-fr.news.eu.org

Avatar
3dsman
Jean-Marc Bourguet a exposé le 15/10/2004 :
3dsman writes:

si non est ce qu'il existe des fonction qui marchent pour tous?


boost en a si j'ai bonne memoire.


ouaip mais j'aimerais bien le coder moi meme au moins pour comprendre
:-)

--
Ceci est une signature automatique de MesNews.
Site : http://mesnews.no-ip.com


Avatar
Fabien LE LEZ
On Fri, 15 Oct 2004 15:45:01 +0200, 3dsman :

ouaip mais j'aimerais bien le coder moi meme au moins pour comprendre


Le source est fourni. Ça te donnera au moins une idée des fonctions à
utiliser.
Même remarque pour wxWidgets.


--
;-)

Avatar
3dsman
bon visiblement la solution utilisée par les libs c'est de refaire des
fonctions avec des
#ifdef WIN32

#else

#endif

Bon donc je vais m'attaquer a ca.

Par contre ma question sur les specificité des systemes de fichiers
tiennent toujours (surtout que je ne peut pas verifier mon code pour
linux et MacOS donc je vais essayer de m'approcher le plus possible
d'un truc qui fonctionne pour avoir le moin de corrections possibles a
faire)

merci a vous

--
Ceci est une signature automatique de MesNews.
Site : http://mesnews.no-ip.com
Avatar
James Kanze
Fabien LE LEZ writes:

|> On Fri, 15 Oct 2004 15:45:01 +0200, 3dsman :

|> >ouaip mais j'aimerais bien le coder moi meme au moins pour comprendre

|> Le source est fourni.

Je me démande si c'est ce qu'il y a de plus lisible. Boost fait de la
portabilité aux grands coups d'#ifdef, ce qui n'améliore rien. Et déjà,
écrire portable n'aide jamais la lisibilité.

En fait, je ne sais pas trop ce qu'il veut comprendre. La stratégie de
Windows (findfirst, findnext) est tellement loin de celui de Unix/Linux
(opendir, readdir, closedir) que je ne vois pas ce qu'il peut y avoir de
common dans les implémentations. Ce qu'il faut, c'est surtout de trouver
la bonne interface qui convient à peu près pour les deux, et ça, c'est
loins d'être évident.

--
James Kanze
Conseils en informatique orientée objet/
Beratung in objektorientierter Datenverarbeitung
9 place Sémard, 78210 St.-Cyr-l'École, France +33 (0)1 30 23 00 34
Avatar
3dsman
James Kanze a émis l'idée suivante :
Fabien LE LEZ writes:

On Fri, 15 Oct 2004 15:45:01 +0200, 3dsman :

ouaip mais j'aimerais bien le coder moi meme au moins pour comprendre


Le source est fourni.



Je me démande si c'est ce qu'il y a de plus lisible. Boost fait de la
portabilité aux grands coups d'#ifdef, ce qui n'améliore rien. Et déjà,
écrire portable n'aide jamais la lisibilité.

En fait, je ne sais pas trop ce qu'il veut comprendre. La stratégie de
Windows (findfirst, findnext) est tellement loin de celui de Unix/Linux
(opendir, readdir, closedir) que je ne vois pas ce qu'il peut y avoir de
common dans les implémentations. Ce qu'il faut, c'est surtout de trouver
la bonne interface qui convient à peu près pour les deux, et ça, c'est
loins d'être évident.


c'est marant je viens de poster sur cette histoire d'#ifdef :-)

je viens de tomber la dessus:

Sauf erreur ou omission de ma part, la librairie standard du C++ n'offre pas
ala possibilité de parcourir une rborescence. La librairie C peut disposer
ddes fonctions _findfirst et _findnext. Ces fonctions sont en générales
Uisponibles sous Windows, mais n'étant pas normalisées, rien ne nous assure
tqu'elles soient disponibles sous NIX-Linux. Il faut donc envisager de
parcourir l'arborescence au moyen d'appels systèmes, avec la surcharge de
ravail et le risque d'erreur que cela implique.



et je ne comprend pas l'histoire de disponibilité sous linux.
Ca veux dire que sous certain linux ca ne compilera pas?
et si je compile avec un linux ca fonctionnera sous les autres ou pas?

Je suis toujours ouvert a toute bonne idée :-)

--
Ceci est une signature automatique de MesNews.
Site : http://mesnews.no-ip.com




Avatar
Loïc Joly
3dsman wrote:

bon visiblement la solution utilisée par les libs c'est de refaire des
fonctions avec des
#ifdef WIN32

#else

#endif

Bon donc je vais m'attaquer a ca.

Par contre ma question sur les specificité des systemes de fichiers
tiennent toujours (surtout que je ne peut pas verifier mon code pour
linux et MacOS donc je vais essayer de m'approcher le plus possible d'un
truc qui fonctionne pour avoir le moin de corrections possibles a faire)


Donc, si je résume, tu n'as pas de Mac ou de Linux, mais tu veux faire
un code portable sans utiliser de code fait par des gens qui ont des Mac
ou des Linux.

Déjà qu'on ne peut vraiment dire qu'un code est portable qu'après coup,
quand il a été porté, mais là, à mon avis, tu ne mets vraiment pas
toutes les chances de ton côté.

--
Loïc

Avatar
3dsman
Loïc Joly a exposé le 15/10/2004 :
3dsman wrote:

bon visiblement la solution utilisée par les libs c'est de refaire des
fonctions avec des
#ifdef WIN32

#else

#endif

Bon donc je vais m'attaquer a ca.

Par contre ma question sur les specificité des systemes de fichiers
tiennent toujours (surtout que je ne peut pas verifier mon code pour linux
et MacOS donc je vais essayer de m'approcher le plus possible d'un truc qui
fonctionne pour avoir le moin de corrections possibles a faire)


Donc, si je résume, tu n'as pas de Mac ou de Linux, mais tu veux faire un
code portable sans utiliser de code fait par des gens qui ont des Mac ou des
Linux.

Déjà qu'on ne peut vraiment dire qu'un code est portable qu'après coup, quand
il a été porté, mais là, à mon avis, tu ne mets vraiment pas toutes les
chances de ton côté.


je sais :-)
En fait je n'ai pas besoin de beaucoup de fonction:
juste celles pour naviguer dans les fichiers, en créer et en lire. je
n'ai pas besoin de traitements comme changer les droits, renomer ou
autre chose.

ce que je veux faire c'est me raprocher d'un truc qui marche pour linux
et osx pour limiter la dose de travail de la personne a qui je vais
refiler le code et qui lui peut compiler sous linux. :-)

--
Ceci est une signature automatique de MesNews.
Site : http://mesnews.no-ip.com


Avatar
Fabien LE LEZ
On 15 Oct 2004 20:35:16 +0200, James Kanze :

La stratégie de
Windows (findfirst, findnext


FindFirstFile[Ex], en fait. findfirst n'est pas vraiment une API
Windows, juste une extension propriétaire fournie avec pas mal de
compilos.
A noter que Borland C++ 5.02 (pour Windows) supporte opendir et
compagnie -- mais je ne sais pas si l'interface est compatible avec la
version Unix.



--
;-)

Avatar
3dsman
heu g une question subsidiaire:

Tous les linux utilisent les memes fonctions pour parcourir
l'arboréscence?

et heu c quoi ces fonctions?

--
Ceci est une signature automatique de MesNews.
Site : http://mesnews.no-ip.com
1 2 3