Podkatalog

problemy z tworzeniem programów do obsługi sieci, internetu, e-mail itp..

Podkatalog

Nowy postprzez Pitek » sobota, 26 grudnia 2009, 00:02

Witam mam problem z odniesieniem się w komponencie IdFTP1 do podkatalogu na serwerze mam stworzony podkatalog : /programywc i chcę umieścić w nim plik update.txt proszę o pomoc jakiego kodu użyć aby funkcje Put i Get odnosiły się do pliku /programywc/update.txt.
Ostatnio edytowano sobota, 26 grudnia 2009, 10:41 przez Cyfrowy Baron, łącznie edytowano 1 raz
Powód: Poprawiłem wypowiedź tak, by była zrozumiała.
Komputer służy do tego aby ułatwić Ci pracę, której bez niego w ogóle byś nie miał.
E.Murphy
http://piotrekprogramy.pl
Avatar użytkownika
Pitek
Kreacjusz
Kreacjusz
 
Posty: 290
Dołączył(a): środa, 14 października 2009, 14:53
Lokalizacja: Rybnik/Wrocław
Podziękował : 43
Otrzymał podziękowań: 5
System operacyjny: Win 7 Ultimate 64bit SP1 / Windows 8 Pro 64bit / Ubuntu 14.04 LTS 64bit
Kompilator: Embarcadero RAD Studio XE2
SKYPE: pitek3010
Gadu Gadu: 7060047
    NieznanyNieznana

Re: Podkatalog

Nowy postprzez Cyfrowy Baron » sobota, 26 grudnia 2009, 10:43

A zaglądałeś tutaj: ► patrz serwis: Cyfrowy Baron dział: porady -> sieć - internet -> Ściąganie i wysyłanie plików poprzez protokół FTP.
Avatar użytkownika
Cyfrowy Baron
Administrator
Administrator
 
Posty: 4728
Dołączył(a): niedziela, 13 lipca 2008, 15:17
Podziękował : 12
Otrzymał podziękowań: 444
System operacyjny: Windows 7 x64 SP1
Kompilator: Embarcadero RAD Studio XE2
C++ Builder XE2 Update 4
SKYPE: cyfbar
Gadu Gadu: 0
    NieznanyNieznana

Re: Podkatalog

Nowy postprzez Pitek » sobota, 26 grudnia 2009, 11:16

Po co bym to pisał ! Pierwsze co robie to tam zaglądam to dla mnie ważne źródło informacji jednak ja używam RAD Studio 2010 i tam to Indy coś nie działa tak jak w tym poradniku Baronie i dlatego to pytanie.
Bardzo proszę o pomoc.
Wesołych świąt !
Mam taki kod :
Kod: Zaznacz cały
void __fastcall TForm5::Button2Click(TObject *Sender)
{
if(pol==true)
{
try
{
IdFTP1->Delete("programywc/update.txt");
}
catch(...)
{

}

ofstream outfile;
outfile.open("C:\\update.txt");
outfile << "1";
outfile.close();

IdFTP1->Put("\\update.txt", "programywc/update.txt", true);
MessageBox(NULL,"Plik wysłano pomyślnie","Info",MB_OK | MB_ICONINFORMATION);
}
else
MessageBox(NULL,"Brak połączenia","Info",MB_OK | MB_ICONINFORMATION);
}

I wyskakuje błąd że nie ma takiego pliku nie można Rename/move ;/
Ostatnio edytowano sobota, 26 grudnia 2009, 11:29 przez Pitek, łącznie edytowano 1 raz
Komputer służy do tego aby ułatwić Ci pracę, której bez niego w ogóle byś nie miał.
E.Murphy
http://piotrekprogramy.pl
Avatar użytkownika
Pitek
Kreacjusz
Kreacjusz
 
Posty: 290
Dołączył(a): środa, 14 października 2009, 14:53
Lokalizacja: Rybnik/Wrocław
Podziękował : 43
Otrzymał podziękowań: 5
System operacyjny: Win 7 Ultimate 64bit SP1 / Windows 8 Pro 64bit / Ubuntu 14.04 LTS 64bit
Kompilator: Embarcadero RAD Studio XE2
SKYPE: pitek3010
Gadu Gadu: 7060047
    NieznanyNieznana

Re: Podkatalog

Nowy postprzez Cyfrowy Baron » sobota, 26 grudnia 2009, 11:27

Pewnie coś się zmieniło w bibliotekach indy. Sprawdzę później.
Avatar użytkownika
Cyfrowy Baron
Administrator
Administrator
 
Posty: 4728
Dołączył(a): niedziela, 13 lipca 2008, 15:17
Podziękował : 12
Otrzymał podziękowań: 444
System operacyjny: Windows 7 x64 SP1
Kompilator: Embarcadero RAD Studio XE2
C++ Builder XE2 Update 4
SKYPE: cyfbar
Gadu Gadu: 0
    NieznanyNieznana

Re: Podkatalog

Nowy postprzez banita » sobota, 26 grudnia 2009, 12:43

biblioteki indy nie sa juz rozwijane od lat wiec w bcb 2007 - 2009 - 2010 jest ta sama wersje. chyba ze panowie z embarcadero sami wprowadzaja jakies zmiany.
Avatar użytkownika
banita
Kreacjusz
Kreacjusz
 
Posty: 283
Dołączył(a): poniedziałek, 28 lipca 2008, 20:07
Podziękował : 1
Otrzymał podziękowań: 18
System operacyjny: Windows 7 Professional
Kompilator: C++Builder 2010 Update 5,
Delphi 2010 Update 5,
NetBeans 6.9(MinGw + Qt),
Visual Studio 2008 + Qt
Gadu Gadu: 0
    NieznanyNieznana

Re: Podkatalog

Nowy postprzez Cyfrowy Baron » sobota, 26 grudnia 2009, 13:34

biblioteki indy nie sa juz rozwijane od lat wiec w bcb 2007 - 2009 - 2010 jest ta sama wersje. chyba ze panowie z embarcadero sami wprowadzaja jakies zmiany.


To prawda, ale autor/autorzy tych bibliotek odsprzedali do nich prawa firmie Borland, no a potem to prawa już przechodziły na firmy CodeGear i Embarcadero.
W C++Builder 2007 jest INDY 10.1, a w C++Builder 2010 jest INDY 10.5.5.



Co do problemu, to do poruszania się po podkatalogach katalogu zdalnego musisz używać dodatkowo funkcji ChangeDir("nazwa_katalogu") i ChangeDirUp() do powrotu do katalogu.

   Kopiowanie pliku do katalogu zdalnego (katalog_zdalny/plik.txt):

Kod: Zaznacz cały
//---------------------------------------------------------------------------
void __fastcall TForm1::Button1Click(TObject *Sender)
{
IdFTP1->Put("C:\\plik.txt", "plik.txt", true); // plik zostanie skopiowany do: katalog_zdalny/
}
//---------------------------------------------------------------------------


   Kopiowanie pliku do podkatalogu katalogu zdalnego (katalog_zdalny/images/plik.txt):

Kod: Zaznacz cały
//---------------------------------------------------------------------------
void __fastcall TForm1::Button1Click(TObject *Sender)
{
IdFTP1->ChangeDir("images");
IdFTP1->Put("C:\\plik.txt", "plik.txt", true); // plik zostanie skopiowany do: katalog_zdalny/images/
}
//---------------------------------------------------------------------------


   Kopiowanie pliku do podkatalogu podkatalogu katalogu zdalnego (katalog_zdalny/images/cursors/plik.txt):

Kod: Zaznacz cały
//---------------------------------------------------------------------------
void __fastcall TForm1::Button1Click(TObject *Sender)
{
IdFTP1->ChangeDir("images");
IdFTP1->ChangeDir("cursors");
IdFTP1->Put("C:\\plik.txt", "plik.txt", true); // plik zostanie skopiowany do: katalog_zdalny/images/cursors/
}
//---------------------------------------------------------------------------


   Funkcja ChangeDir może zagnieżdżać podkatalogi (ChangeDir(podkatalog/podkatalog). Kopiowanie pliku do podkatalogu podkatalogu katalogu zdalnego (katalog_zdalny/images/cursors/plik.txt):

Kod: Zaznacz cały
//---------------------------------------------------------------------------
void __fastcall TForm1::Button1Click(TObject *Sender)
{
IdFTP1->ChangeDir("images/cursors");
IdFTP1->Put("C:\\plik.txt", "plik.txt", true); // plik zostanie skopiowany do: katalog_zdalny/images/cursors/
}
//---------------------------------------------------------------------------


   Kopiowanie pliku do podkatalogu podkatalogu katalogu zdalnego (katalog_zdalny/images/cursors/plik.txt), a następnie cofnięcie się do katalogu zdalnego i skopiowanie pliku bezpośrednio do katalogu zdalnego (katalog_zdalny/plik.txt):

Kod: Zaznacz cały
//---------------------------------------------------------------------------
void __fastcall TForm1::Button1Click(TObject *Sender)
{
IdFTP1->ChangeDir("images");
IdFTP1->ChangeDir("cursors");
IdFTP1->Put("C:\\plik.txt", "plik.txt", true);

IdFTP1->ChangeDirUp(); // cofniecie się o jeden katalog w górę, czyli z cursors do images
IdFTP1->ChangeDirUp(); // cofnięcie się o jeden katalog w góę, czyli z images do katalogu zdalnego
IdFTP1->Put("C:\\plik.txt", "plik.txt", true); // plik zostanie skopiowany bezpośrednio do katalogu zdalnego
}
//---------------------------------------------------------------------------


   Do sprawdzania w jakim katalogu aktualnie się znajdujesz służy funkcja RetrieveCurrentDir():

Kod: Zaznacz cały
//---------------------------------------------------------------------------
void __fastcall TForm1::Button1Click(TObject *Sender)
{
IdFTP1->ChangeDir("images/cursors");
IdFTP1->Put("C:\\plik.txt", "plik.txt", true);

String curDir = IdFTP1->RetrieveCurrentDir();
ShowMessage(curDir); // komunikat: images/cursors
}
//---------------------------------------------------------------------------
Avatar użytkownika
Cyfrowy Baron
Administrator
Administrator
 
Posty: 4728
Dołączył(a): niedziela, 13 lipca 2008, 15:17
Podziękował : 12
Otrzymał podziękowań: 444
System operacyjny: Windows 7 x64 SP1
Kompilator: Embarcadero RAD Studio XE2
C++ Builder XE2 Update 4
SKYPE: cyfbar
Gadu Gadu: 0
    NieznanyNieznana

Re: Podkatalog

Nowy postprzez Pitek » sobota, 26 grudnia 2009, 22:58

Wszystko działa sprawnie !
Bardzo dziękuję za pomoc !
Czy te informacje z postu wyżej zostaną umieszczone w poradniku na stronie ?
Komputer służy do tego aby ułatwić Ci pracę, której bez niego w ogóle byś nie miał.
E.Murphy
http://piotrekprogramy.pl
Avatar użytkownika
Pitek
Kreacjusz
Kreacjusz
 
Posty: 290
Dołączył(a): środa, 14 października 2009, 14:53
Lokalizacja: Rybnik/Wrocław
Podziękował : 43
Otrzymał podziękowań: 5
System operacyjny: Win 7 Ultimate 64bit SP1 / Windows 8 Pro 64bit / Ubuntu 14.04 LTS 64bit
Kompilator: Embarcadero RAD Studio XE2
SKYPE: pitek3010
Gadu Gadu: 7060047
    NieznanyNieznana


  • Podobne tematy
    Odpowiedzi
    Wyświetlone
    Ostatni post

Powrót do Aplikacje sieciowe

Kto przegląda forum

Użytkownicy przeglądający ten dział: Brak zalogowanych użytkowników i 1 gość

cron