Comment afficher et acceder d'un dossier sur le reseau

silver74 Messages postés 15 Date d'inscription jeudi 20 janvier 2005 Statut Membre Dernière intervention 4 février 2020 - 9 nov. 2005 à 19:50
 Utilisateur anonyme - 11 nov. 2005 à 22:24
Bonjour,

je voudrais afficher le contenu d'un lecteur reseau sur mon intranet(xoops),pour l'utilisateur peux ensuite acceder a ce fichiers facilement.Un truc du genre comme les antivir en ligne(http://www.secuser.com/antivirus/) sauf sans antivirus ou un truc comme jbc-explorer (http://www.jbc-explorer.com/demo/)

Imaginez chaque utilisateur dispose un dossier perso(lecteur m:) sur un serveur avec different fichiers(doc,pdf,jpg...).Car a chaque allumage il doit ce connecter avec son login et mot de passe sur le serveur(Novell)et ensuite sur l'intranet.
Donc je voudrais il m'affiche tout ca dans un bloc .Pour ensuite si l'user a besoin de ouvrir un fichier il na juste besoin de cliquer sur le fichier dans le bloc en question pour le lancer.

Je pense il faut creer un script en activeX,mais je ne suis pas sur et je ne sais pas ou il faut regarder pour ca.Avez vous une piste pour moi?

6 réponses

Utilisateur anonyme
10 nov. 2005 à 15:29
salut,

J'ai pas bien compris ta question.

Tu as un réseau constitué d'un serveur et de différents clients ettu souhaite récuperer l'arborescence d'un client sur ton serveur ???
0
Utilisateur anonyme
10 nov. 2005 à 15:39
En fait JBC est le contraire on visionne le serveur à partir du client : Il y a une technique possible.

En fait sur ton client tu as un mémo et un bouton. En appuyant sur le bouton tu envoyes à ton serveur un message du type sendtext('arborescence|').

Quand ton client recoit le message "arborescence" (procedure onread) une procedure se met en marche : elle liste tous les fichiers et répertoires en utilisant une boucle (voir : méthode par récursivité). Seulement elle n'affiche pas chaque répertoire et fichier dans un mémo mais l'envoye par un sendtext : sendtext('repertoire|'+nom du répertoire) ou ('fichier|'+nom du fichier).

Quand ton client recoit le message "répertoire" alors il affiche le reste du message (cad le nom du répertoire) dans le mémo.
Quand ton client recoit le message "fichier" alors il affiche le reste du message (cad le nom du répertoire) dans le mémo.

En travaillant bien ta source tu peux faire un truc puissant avec tes icones et même ordonner les données :
c:\
mes documents
Sources
test.pas
test.dcu
0
silver74 Messages postés 15 Date d'inscription jeudi 20 janvier 2005 Statut Membre Dernière intervention 4 février 2020
10 nov. 2005 à 17:27
Enfaite je chercher qq choses toute faite(avec qq modif biensur) qui permet d'afficher et d'acceder dans un repertoire d'un lecteur reseau,car je me vois mal de me lancer dans la prog d'activeX,faute de temps.Car deja mon Parc 120PC's et l'intranet me prend pas mal de temps.

Je le vue un truc comme ca une fois en stages dans une entreprise,mais il sont fermer la boutique donc impossible de savoire comment il ete fais.Ce pour ca je cherche pour le moment deja comment il ete fais.Je fais une petite montages comment je penser de l'afficher.Mais je ne ce pas comment.Bon je fais vite fais un motages pour vous montré comment je voulus l'afficher.
.

J'espere avec ca je suis en peux plus clair,et jespere vous pouvais m'aider
0
Utilisateur anonyme
10 nov. 2005 à 22:57
Salut

Un composant ou une fonction toute faite tu trouvera pas : j'ai cherché aussi sur le net et ai rien trouvé. Deux solutions :

*Première : tu cherches sur CS récursivité et tu va tomber sur une source de grand vizir. Elle liste tous les programmes et affiche cela dans un mémo. TU modifie la fonction d'affichage dans le mémo par un sendtext et puis voila.

serversocket1.connecting[0].sendtext('listing|'+nom du fichier); (un truc de ce type). Apres utilise la fonction copy pour récuperer le message regu jusqu'à | avec une petite synthaxe du type if ce message recu=listing puis utilise la fonctionn add ou append des memo avec le reste du message recu. Si j'ai le temps je te fais un exemple vite fais pour avoir les répertoires ca marche ????


*Deuxième solution : tu attends que je fasse une source la dessus ( mais je veux faire un truc bien donc ca va etre long).
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
silver74 Messages postés 15 Date d'inscription jeudi 20 janvier 2005 Statut Membre Dernière intervention 4 février 2020
10 nov. 2005 à 23:16
Niv temps ca pose pas de probleme,car je compter de 1-3 mois pour moi de le mettre en place.Mais long chez toi ce koi?Donc je suppose qq1 qui connais le truc comment il faut faire, peux le faire en peux plus vite.

Car niv prog ce pas encore ca chez moi.Je commence juste a sondé les differentes truc quelle je besoin, ensuite je cherche avec quoi il faut le faire.Mais le probleme est,en cherchent un truc en trouve un autre.Donc qq fois ce pas facile de pas perdre le nord

Pour mon travail en ma demander de mettre en place un messagerie,je le fais.
Ensuite en ma demander un gestion salle/matos,je le fais
Ensuite en ma demander un gestionaire de documentation avec upload,je le fais aussi

Comme tu peux voir chaque fois il ce ajoute une petite morceau par si par la,mais a la fin en recois un produit bien fais avec bcp de recherche et de patience.

Donc si je te demande tres gentilment,tu pourait le faire?
0
Utilisateur anonyme
11 nov. 2005 à 22:24
je peux pas le faire : j'ai plein de tafs et j'ai aussi mon projet à finir mais lister le répertoire est quelque chose qui m'a interessé. Je vais donc prendre 15 jours pour voir ce que je peux faire. Juste pour ta gouverne : je ne suis pas un King en delphi loin de là .

Pour te mettre l'eau à la bouche :

Client :
procedure TForm1.Button1Click(Sender: TObject);
begin
clientsocket1.socket.sendtext('listing|');
end;

procedure TForm1.ClientSocket1Read(Sender: TObject;
Socket: TCustomWinSocket);
var line, endline : string ;
begin
if Copy(line, 1, Pos('|', line)-1 ) = 'repertoire' then
begin
endline:=(Copy(line, Pos('|', line)+1, Length(line)));
form1.memo1.lines.Append(endline);
end;






Serveur :

procedure TForm1.ServerSocket1Read(Sender: TObject;
Socket: TCustomWinSocket);
var line : string ;
D: TSearchRec;

begin
line := socket.receivetext ;
if Copy(line, 1, Pos('|', line)-1 ) = 'listing' then
begin
FindFirst('C:\*.*', faDirectory, D);
if FindFirst('C:\*.*', faDirectory, D) = 0 then
repeat
If (D.Attr And faDirectory)<>0
Then serverSocket1.Socket.Connections[0].SendText('repertoire|'+D.FindData.cFileName);
end;
end;


J'explique :

Tu appuyes sur le bouton1 du client : il envoie le message "listing" au serveur. Ce dernier est en écoute : quand il recoit un message, si ce dernier s'identifie à "listing" il démarre une procedure (recherche sur google les mots clés comme findfirst) : il recherche les répertoires sur C:\ et pour chaque répertoire trouvé il envoit au client le message "repertoire|+nom du répertoire". Ce dernier est en écoute : Si il recoit un message commencant par répertoire alors il ajoute le reste du message c'est à dire le nom du répertoire dans le mémo. Ainsi tu obtiens sur le mémo le listing des répertoires de C:\.

Deux remarques : pour les fichiers il faut faire quelque chose de similaire :
begin
FindFirst('C:\*.*', faDirectory, D);
if FindFirst('C:\*.*', faDirectory, D) = 0 then
repeat
If (D.Attr And faDirectory)=0 //attentin on passe de <> à =
Then serverSocket1.Socket.Connections[0].SendText('repertoire|'+D.FindData.cFileName);
end;

Pour lister toute l'arborescence (répertoires+fichiers) il faut créer une fonction de recherches repertoires+fichiers. Dans cette fonction il faut utiliser cette meme fonction pour les répertoires énumérés : il y a récursivité. J'explique :

Ta fonction te permet de trouver :
C:\
C:\windows
C:\mes documents
C:\Recettes de cuisine
C:\webcam.exe
C:\rapport.doc

Puis pour chaque répertoire on appelle cette fonction (dans la fonction):
C:\Recettes de cuisine =>
C:\Recettes de cuisine \gateaux
C:\Recettes de cuisine \entrées
C:\Recettes de cuisine \boissons
C:\Recettes de cuisine \Notice du four.doc
C:\Recettes de cuisine \Notice du micro onde.zip

Pour la récursivité regarde sur CS il y a plein de sources donc celle de grand vizir ou il liste tous les répertoires (et fichiers aussi). Au lieu d'utilise le form1.memo1.lines.Append(repertoire); (je crois qu'il utilise cette instruction : à voir) bien tu fais serverSocket1.Socket.Connections[0].SendText('repertoire|'+nom du répertoire);

C'est juste un exemple de base : il ya plein de possibilités possibles (utilisation de la procedure on click sur le mémo : comme ca tu as pas directement toute l'arborescence mais tu peux faire une exploration en cliquant sur C: puis su C:\mes documents puis sur c:\mes documents\Tutorial ect ect ect.)

Bah voila ce que je peux te dire pour l'instant. Avec ca et quelques recherches tu devrais pouvoir t'en sortir.

PS: les codes n'ont pas été testés et la j'ai la tete dans le ... Donc si il ya des fautes c pas étonnant. En tout cas tu as le principe bien détaillé.

Bon prog
0
Rejoignez-nous