CONNEXION
  • RetourJeux
    • Sorties
    • Hit Parade
    • Les + populaires
    • Les + attendus
    • Soluces
    • Tous les Jeux
    • Gaming
  • RetourActu Gaming
    • News
    • Astuces
    • Tests
    • Previews
    • Toute l'actu gaming
  • RetourBons plans
    • Bons plans
    • Bons plans Smartphone
    • Bons plans Hardware
    • Bons plans Image et Son
    • Bons plans Amazon
    • Bons plans Cdiscount
    • Bons plans Decathlon
    • Bons plans Fnac
    • Tous les Bons plans
  • RetourJVTech
    • Actus High-Tech
    • Intelligence Artificielle
    • Smartphones
    • Mobilité urbaine
    • Hardware
    • Image et son
    • Tutoriels
    • Tests produits High-Tech
    • Guides d'achat High-Tech
    • JVTech
  • RetourCulture
    • Actus Culture
    • Culture
  • RetourVidéos
    • A la une
    • Gaming Live
    • Vidéos Tests
    • Vidéos Previews
    • Gameplay
    • Trailers
    • Chroniques
    • Replay Web TV
    • Toutes les vidéos
  • RetourForums
    • Hardware PC
    • PS5
    • Switch 2
    • Xbox Series
    • Switch
    • Pokemon pocket
    • FC 25 Ultimate Team
    • League of Legends
    • Tous les Forums
  • PC
  • PS5
  • Xbox Series
  • Switch 2
  • PS4
  • One
  • Switch
  • iOS
  • Android
  • MMO
  • RPG
  • FPS
En ce moment Genshin Impact Valhalla Breath of the wild Animal Crossing GTA 5 Red dead 2
Liste des sujets

Vérifier l'existence d'un repertoire ?

darth-bane
darth-bane
Niveau 10
29 novembre 2006 à 19:24:33

Je vais ajouter que pour être certain de ce que j´affirme, je me suis replongé dans ma bible PC pour trouver une interruption BIOS qui permettrait de vérifier l´existence d´un dossier. Il n´y en a pas !
Tout ce qui existe, a été exploité pour le C, le Pascal, ... afin de créer les fonctions de base de manipulation des dossiers et fichiers.
Ce qui n´existe pas est à créer à partir de ces fonctions !

godrik
godrik
Niveau 30
29 novembre 2006 à 20:19:47

bah bien sur qu´il n´y en a pas dans le BIOS!!!!
ca dépend du système de fichiers que tu utilises. et le BIOS ne peut pas tous les connaitres.

"c´est tout de meme bizarre qu´il n´y a pas de fonction pour valider un répertoire directement, être obliger d´en créer un puis de le supprimer ensuite est légèrement chiant!"
visiblement tu n´as pas lu les pages que je t´ai indiqué.

dnob700
dnob700
Niveau 10
29 novembre 2006 à 22:25:49

Sys.file_exists "nom du fichier ou du dossier".

mais c´est du OCaml ...

godrik
godrik
Niveau 30
29 novembre 2006 à 22:34:41

avec une interface unix ca coute un
open avec un parametre O_DIRECTORY et si ca foire de regarder errno pour la valeur: ENOTDIR

C´est pour ca que j´ai cherché un truc similaire sous windows! Mais il y a peut etre plus simple.

darth-bane
darth-bane
Niveau 10
29 novembre 2006 à 22:36:56

Mea Culpa, j´ai fait une erreur !

Je corrige mes propos !

Les interruptions permettant de manipuler les dossiers et fichiers ne sont pas des interruptions BIOS, mais DOS, bien sûr !

Mais ça n´empêche pas qu´il n´existe pas d´interruption permettant de vérifier l´existence d´un dossier !

godrik
godrik
Niveau 30
29 novembre 2006 à 22:38:01

O_DIRECTORY
If pathname is not a directory, cause the open to fail. This
flag is Linux-specific, and was added in kernel version 2.1.126,
to avoid denial-of-service problems if opendir(3) is called on a
FIFO or tape device, but should not be used outside of the
implementation of opendir.

mea culpa, c´est un opendir qu´il faudrait faire.

darth-bane
darth-bane
Niveau 10
29 novembre 2006 à 22:55:23

Pfiou, merci !

J´ai horeur d´être le seul à faire mon Mea Culpa ! :rire:

m-2
m-2
Niveau 10
29 novembre 2006 à 23:50:06

godrik: les pages que tu m´as indiqué?? c´est-à-dire, le findfirstfile? bien sûr que non, je ne les ai pas encore regardé! j´avais beaucoup de boulot aujourd´hui! t´inquiète, je vais jeter un coup d´oeil :P

et ce que je voulais dire par "il n´existe pas de fonction pour vérifier l´existance d´un dossier" c´est qu´il n´existe effectivement pas de fonction qui renvoie vrai si le dossier existe comme en .NET avec la merveilleuse méthode if (Path::Exist(dir))! je suis bien d´accord avec vous pour dire que c´est faisable, mais indirectement grâce à d´autre méthode (que je trouve douteuse d´ailleur, pourquoi créer un nouveau dossier s´il n´existe pas, puis le supprimer ensuite puisqu´on s´en sert pas???)

------------------

"Et d´après toi, comment l´OS fait-il pour exécuter ta fonction MOVE ?
Il essaye d´accéder au dossier, s´il n´existe pas, il le crée et y déplace les fichiers, s´il existe il y déplace directement les fichiers.
Même chose s´il y´a des sous dossiers à déplacer."

décidément, tu as plus d´un mea culpa à faire puisque la commande move ne crée pas de nouveau répertoire s´il n´existe pas mais indique un message tels que "le dossier spécifié est inexistant" !!

enfin bref, c´est vous qui savez!

darth-bane
darth-bane
Niveau 10
30 novembre 2006 à 00:32:56

Ne compare pas le C et .net, tout simplement parce qu´ils ne sont pas de même génération.
Le C de base ne comprends pas énormément de fonctions, les principales seulement.
Ensuite, certains ont développés à partir de ces fonctions de base des bibliothèques de fonctions plus spécifiques.
Et pour la méthode path::exist() de .net, c´est pareil, elle a été développé à partir des fonctions de base. La seule chose, c´est que c´est transparent pour le développeur, il ne fait pas de différence entre une fonction de base et une fonction évoluée. Au pire il a dû intégrer une bibliothèque dans son code. Il n´a pas besoin de se demander comment elle fonctionne, pas besoin de se demander si sa méthode est douteuse, il l´utilise et c´est tout.

Je t´ai donné 2 méthode, si l´une ne te plaits pas, tu as toujours l´autre.

Pour la commande MOVE du Dos, désolé de te décevoir, je ne ferais pas de Mea Culpa, car en fait, celle que tu connais est une version dégradé de la commande d´origine et maintenant retourne un message d´erreur si le dossier n´existe pas. A l´origine, elle demandait si elle devait créer le dossier inexistant.

Sous forums
  • Aide à l'achat Mac
  • Internet
  • Macintosh
  • Création de sites web
  • Création de Jeux
  • Linux
  • Programmation
  • Steam Deck
  • Hardware
La vidéo du moment