2010-11-15 43 views
4

J'essaie de vérifier si un fichier existe ou non dans Tcl, mais je n'arrive pas à obtenir un vrai résultat. Même si je sais que c'est présent. J'exécute toujours la ligne Fichier non copié. J'ai fait un put pour [file exists $file_name] et je finis toujours par 0. Mais je sais pertinemment que le fichier existe dans le répertoire courant. Aucune suggestion?Tcl + Vérifier l'existence d'un fichier

EDIT:

Une autre méthode que je suis en train de poursuivre, est que quand je fais un dir en utilisant le script Tcl. Je vais obtenir une sortie de tous les fichiers dans le répertoire. J'ai juste besoin de faire correspondre mon fichier avec la liste sortie et satisfaire le if lorsqu'une correspondance a été trouvée ...

J'exécute le script à partir de l'emplacement A, mais en utilisant le script pour telnet à l'emplacement B. Quand je fais un fichier existe, il vérifie l'emplacement A lui-même. C'est mon problème ... puisque je dois chercher dans l'emplacement B ...

+0

Ensuite, vous devez exécuter des commandes ssh/ftp/whatever_protocol pour interroger le répertoire distant. –

Répondre

7

La commande file exists fonctionne toujours avec les systèmes de fichiers locaux. Si vous voulez vérifier si un système distant a un fichier, vous devrez lui donner quelques instructions pour faire le contrôle pour vous. Malheureusement, je ne peux pas vraiment dire de quoi vous parlez à partir de votre description, donc je ne peux pas vraiment conseiller comment le faire.

Et vous voulez un break après cette ligne puts "File copied" sinon tout va faire le tour de la boucle à nouveau. Tu ne veux probablement pas ça!

+0

Merci pour la réponse Donal. A propos du code, je viens d'écrire un pseudo code approximatif pour suggérer ce que je dis. Je vais regarder dans ces deux méthodes que vous avez suggéré .. – c0d3rs

0

Donal a raisonnablement mentionné exp_send comme un véhicule pour accéder à un système de fichiers distant. Si c'est un contexte FTP, cependant, je préfère une solution (pure-Tcl-without-Expect) basée sur la bibliothèque FTP de Tcl; Je trouve cela plus portable, compréhensible et concis.