Jump to content
paulsk8

c# editate fişire din FTp

Recommended Posts

Salut

Vreau s? ?tiu , este posibil ca prin c# s? pot edita un fi?ier .txt dintr-un FTP?

De exemplu s? pun un richtextbox ?i un buton. Cand ap?s buttonul fi?ierului fisier.txt s? ii se adauge caracterele din richtextbox....

Adic? ar fi geva gen

string continut= continutul fisierului fisier.txt +system.environment newline+richtextbox1.text;

si apoi s? trimit in ftp fisierul fisier.txt care s?con?ina stringul continut ( înlocuindu-se cel vechi ).

Pa?ii ar fi gen

1) citirea / downloadarea fi?ierului din ftp

2. editarea continutului

3.inlocuirea in ftp

Este posibil?

Daca da cum?

Edited by paulsk8
Link to comment
Share on other sites

Nu am de gând s? platesc pentru asta..

Momentan nu am gasit pe google o metoda sa trimit un fisier .txt intr-un ftp cu nume si parola.. si sa citesc un fisier .txt din ftp fara sa il downloadez...

Am gasit sa citesc un fisier din FTP daca este dupa un url gen ftp.xxx.com/fisier.txt

WebClient request = new WebClient();

string url = "ftp:// ftp.xxx.com" +fisier.txt";

request.Credentials = new NetworkCredential("anonymous", "anonymous@example.com");

try

{

byte[] newFileData = request.DownloadData(url);

string fileString = System.Text.Encoding.UTF8.GetString(newFileData);

MessageBox.Show(fileString);

}

catch

{

}

Asta de mai sus merge daca ai ftp cumparat..eu am gasit ftp gratis ftp.drivehq.com si de pe el vreau sa iau pun fisierele..

Edited by paulsk8
Link to comment
Share on other sites

Se vede ca esti la inceput cu c#-ul si .net framework. Munca e facuta in mare parte de cei de la Microsoft, tu trebuie doar sa stii sa profiti de ea.

Indiciu: System.Net

Declara-l direct ca namespace sa poti accesa direct:

using namespace System.Net;

Daca nu stii unde trebuie pusa bucatica asta de cod, atunci lasa-te de "proiectul" asta si pune-te pe invatat.

Si inca ceva, de ce nu folosesti un textbox normal?

Link to comment
Share on other sites

Se vede ca esti la inceput cu c#-ul si .net framework. Munca e facuta in mare parte de cei de la Microsoft, tu trebuie doar sa stii sa profiti de ea.

Indiciu: System.Net

Declara-l direct ca namespace sa poti accesa direct:

using namespace System.Net;

Daca nu stii unde trebuie pusa bucatica asta de cod, atunci lasa-te de "proiectul" asta si pune-te pe invatat.

Si inca ceva, de ce nu folosesti un textbox normal?

Sunt la inceput dar nici chiar a?a..

Nu inteleg ce vrei sa zici..probabil vrei sa spui ca in postul anterior nu am pus si lusing system.net?

Am pus in program, am dat paste aici doar ce era mai important..

Ai inteles gresit..

Link to comment
Share on other sites

Mersi de link dar spune acolo

Downloading and Uploading Files

Eu doresc s?îl citesc f?r? a-l downloada.. ca exemplul dat mai sus de mine dar sa mearga pe ftp cu nume si parola..

Tu cand incarci forumul RST ce crezi ca faci? Descarci indexul intr-un fisier temporar sau o zone de memorie ce va fi eliberata dupa ce tu navighezi pe alta pagina, asta faci, orice informatie tragi de pe internet se numeste descarcare, fie ca o salvezi pe HDD fie ca nu. Descarci fisierul pe HDD sau intr-o variabila, cum vrei tu, citesti continutul si-l bagi intr-un string, il concatenezi cu ce vrei tu, memorezi in fisier, il urci in ftp si apoi stergi fisierul de pe HDD sau eliberezi variabila ce il contine. E chiar asa de greu?

Sunt la inceput dar nici chiar a?a..

Nu inteleg ce vrei sa zici..probabil vrei sa spui ca in postul anterior nu am pus si lusing system.net?

Am pus in program, am dat paste aici doar ce era mai important..

Ai inteles gresit..

Postul cu codul l-ai scris in timp ce scriam si eu postul meu, iar in acel post incercam sa-ti atrag atenti asupra System.Net.FtpClient dar esti batut in cap.

De ce folosesti WebClient pentru ftp, pentru ftp folosesti FtpClient.

Codul merge doar daca ai declarat namespaceul.

FtpClient ftpClient = new FtpClient("ftp://....", "username", "password");
ftpClient.PermitOverwrite = true;

Iar de aici sa zicem ca te ajuta Intellisense.

PS: DUBLU POST

Edited by SilviuSDS
Link to comment
Share on other sites

Stiu ca am facut dublu post, credeam ca automat se lipesc, in fine.

Daca ai vazut , mai sus am aratat o metoda care citeste continunul unui fisier .txt fara sa il downloadeze dar problema ca e acel ftp are domeniu..nu nume si parola..

Si te rog vorbeste civilizat, daca crezi ca cer prea multe sau nu inteleg ceva ori imi explici frumos ori dai CTRL+W .

Link to comment
Share on other sites

De fapt metodata downloadeaza fisierul, doar ca o face direct in variabila si nu intr-un fisier, desi e posibil ca in background sa creeze si un fisier temp. Urmareste pasii pe care chiar tu i-ai specificat, si foloseste ftp client si nu webclient

Pa?ii ar fi gen

1) citirea / downloadarea fi?ierului din ftp

2. editarea continutului

3.inlocuirea in ftp

Link to comment
Share on other sites

Metoda ta descarca fisierul in RAM si nu in ROM, poti face asta si cu FtpClient dar tu nici macar nu incerci, ti-am dat indiciu, apoi ti-am dat cod mura-n-gura, daca n-ai chef sa-l faci si vrei sa-l face cineva pentru tine, platesti, altfel foloseste FileZilla si scapi de o bataie de cap.

Toti am fost candva in stagiul tau, am perseverat si am reusit, eu unul nu am cerut niciodata ajutor pe vreun forum, daca n-am stiut ceva l-am intrebat pe batranul Google, daca nici el nu a stiut, m-am chinuit singur pana am reusit, ori am schimbat metoda, dar am dus mereu la capat ceea ce am vrut sa duc.

Chiar azi ma chinuiam sa scot titlul unei ferestre cu GetWindowText(), n-a vrut deloc sa mearga asa ca am folosit SendMessage(), ceea ce vreau eu sa intelegi tu din asta este ca, nu intodeauna calea cea mai usoare este calea cea buna. Uneori trebuie sa depui mai mult efort ca sa obtii ceea ce vrei, nu o sa-ti pice din cer.

Link to comment
Share on other sites

In fine am reusit ce vroiam sa fac.

Programul citeste de pe un host un fisier .txt fara a-l downloada gen www.lalala.com/fisierull.txt

Continutul apare intr-un richtextbox( care are enabled=false)

Scriu ceva in alt richtextbox apas pe un buton si creeaza un .txt in folderul system32 cu continutul vechi al fisierului + ce scrie in al 2-lear richtextbox, fisierul inlocuieste pe cel original din host adica pe www.lalala.com/fisierull.txt dupa care fisierul din system32 va va fi inlocuit cu unul care nu are nimic scris in el.

Multumesc tuturor pentru ajutor.

Link to comment
Share on other sites

In primu rand, Invata ce sunt alea variabile si unde sunt stocate cand li se dau o valoare, apoi invata ce e memoria Ram si mai ales aia ROM, care nu o vei folosi NICIODATA in C#.

Fisierele care sunt pe un server ftp au aceasi atribute(read write append) ca si cele stocate local, ceea ce inseamna ca vei lucra cu IO Stream si .Net

Problema este ca te-au incurcat baietii cu commenturile lor de mari calculatoristi, tu ai abordat foarte bine subiectul.

Pa?ii ar fi gen

1) citirea / downloadarea fi?ierului din ftp

2. editarea continutului

3.inlocuirea in ftp

Eu nu o sa-ti scriu vreun cod, nu e igienic dar iti spun metodologia pe care ar trebui sa o urmezi in pasi.

Verifici daca esti conectat la retea,incerci conectarea la server, incerci sa accesezi path+fisier, prin ce mod vrei tu read/write/append, daca doresti ceva din acel fisier practic ii faci o copie in stream, iar daca vrei fisierul cu totu va trebui sa te folosesti de Encoding Byte, apoi dupa ce ai acea parte din fisier sau cu totul fie ca e ca string sau byte in stream il poti manipula cum vrei tu, salva in computer sau modifica si trimite iar pe server desi daca e vorba de asta mai bine il deschizi direct.

Eu zic sa citesti bine msdn cu treburi de genul, daca te-ai impotmolit acum si deja ceri cod, te numesti un macaronar care niciodata nu va programa cum trebuie si va simti nevoie de un pic de cod de la altii.

Invata bine deocamdata system.text, system.io, la ce se spunea mai sus, lasa ultimul interop services si unsafe casting ca nu e de tine momentan, daca te-ai apucat de .Net invata ce are .Net nu incerca deja win32 api ca o sa ai mari batai de cap.

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.



×
×
  • Create New...