vbstreets конференция - Виж темата - как да копирате данните чрез FTP

Този проблем
Има една програма, на която се свържа с другите. Computer чрез FTP.
Три прозорци: ПР. Вход, парола. Завършен - логин - виж данните, които се нуждаят, през четвъртото поле, изглежда така:
-rwxrwxrwx 1 ABC CDE 1000018 30 септември 08:15 log0.csv
-rwxrwxrwx 1 ABC CDE 181273 30 септември 09:15 log1.csv
Бутон за да се създаде копие на данните
Имам нужда от тази информация сега се копира да си представим, например C:
Като допълнителна помощ, моля.

код:
Частни Под btnLogin_Click (ByVal подателя System.Object, ByVal д Както System.EventArgs) Дръжки btnLogin.Click
Дим LS Като Indy.Sockets.TIdStringListFCL = New Indy.Sockets.TIdStringListFCL
FTPConnection = New Indy.Sockets.FTP
Me.FTPConnection.Host = Me.txtFTPAddress.Text
Me.FTPConnection.Username = Me.txtUserName.Text
Me.FTPConnection.Password = Me.txtPassword.Text
Me.FTPConnection.Port = 21
Me.FTPConnection.Passive = True

опитвам
Me.FTPConnection.Connect ()
Me.FTPConnection.List (LS ", ./Data/*.csv", True)

За всеки файл Както стринга В LS
Me.lstServerDirectoryData.Items.Add (файл)
до

Catch бивш Както Изключение
StatusBar1.Text = ex.Message
Exit Sub
Край Опитайте

Научете - средства, за да открият това, което вече знаете. <.> Научи - това означава, напомняйки на другите, че те го знаят, както и вие. <.> Най-доброто нещо ви научи на това, което си най-вече, за да се научат. (Bach R.)

Аз не знам колко са експерти в този конкретен компонент.

Научете - средства, за да открият това, което вече знаете. <.> Научи - това означава, напомняйки на другите, че те го знаят, както и вие. <.> Най-доброто нещо ви научи на това, което си най-вече, за да се научат. (Bach R.)

[Цитат = "Дъга"]
3) sovy манипулатор (Private Sub btnLogin_Click (ByVal подателя System.Object, ByVal д Както System.EventArgs) Дръжки btnLogin.Click)
намеси повикване TestFTP ()


vastavlyayu
Защитена Sub TestFTP ()
, и той ми каза. оператор в рамките на оператора

и все пак има mnstruktsii например каза. две DLL трябва да бъдат свързани.
FTP.dll намерих, но втората не знам

artist7. и да правите, след като е написал някои програма?
Извикването на функциите - това е просто име и параметри.
В нашия случай, TestFTP няма параметри. Това означава, че просто трябва да се напише TestFTP всички.

За втората DLL аз не знам нищо. Имам проект Кампильо.

На DLL е необходимо да се обърнете, ако не използвате класа и DLL. Тъй като добави към проекта clsFTP (ако са добавени), не е необходимо да се DLL препратки.

Създател. че ще бъде готино, но artist7, както аз сега осъзнах, се нуждаят от код, който той би просто копират и тя работи. Ако имате време и голямо желание, можете да се опитаме да помогнем. Аз просто имам сега спешно работа - не мога.

Sebas. Устройства - е един и същ за всички PDA устройства. Греша ли?

Научете - средства, за да открият това, което вече знаете. <.> Научи - това означава, напомняйки на другите, че те го знаят, както и вие. <.> Най-доброто нещо ви научи на това, което си най-вече, за да се научат. (Bach R.)

- и не разбрах защо те идват при мен, за да умра?

Така че някой може все още да обясни как да продължите?

Свалих този клас
там издигна форма
нейните 2 бутона - за вход и Donowload

Reinbow написа:
3) sovy манипулатор (Private Sub btnLogin_Click (ByVal подателя System.Object, ByVal д Както System.EventArgs) Дръжки btnLogin.Click)
намеси повикване TestFTP ()

Да вмъкна, и така с скоби и без и със защитени Sub и каквото. Общо грешка
Аз не знам как да му се обади, кажи ми

Следващата - къде е? ляв или десен)

Мога да го придържаме към (Private Sub btnLogin_Click. След това, или да го SAMO (между Private Sub btnLogin_Click. И. Край под)

Пример вмъкнати с по-малко ясно

така. Нека стъпка по стъпка:
Уверете се, че можете да zakonnektitsya.
Чрез шиене "наследява System.Windows.Forms.Form" пиши:
Код: Избери всички частни FTP Както clsFTP
След това добавете бутон манипулатор вход (имам го btnLogin)
Код: Избери всички Private Sub btnLogin_Click # 40; ByVal подателя System.Object, ByVal д Както System.EventArgs # 41; Дръжки btnLogin.Click
FTP = New clsFTP
ftp.RemoteHost = txtFTPAddress.Text
ftp.RemoteUser = txtUserName.Text
ftp.RemotePassword = txtPassword.Text
ftp.RemotePort = 21
Ако ftp.Login # 40; # 41; след това
MsgBox # 40; "! Вход Успешно" # 41;
Крайна сметка, ако
End Sub
Се е случило? Видях съобщение?

Сега сложете файл за изтегляне:
Добавете бутон манипулатор за сваляне (Имам го btnDownload)
Код: Избери всички Private Sub btnDownload_Click # 40; ByVal подателя System.Object, ByVal д Както System.EventArgs # 41; Дръжки btnDownload.Click
ftp.ChangeDirectory # 40; "Данни" # 41;
ftp.DownloadFile # 40; "myfile.csv", "C: \ TEMP \ myfile.csv" # 41;
End Sub

myfile.csv и C: \ TEMP \ myfile.csv заменя с реалното!

Научете - средства, за да открият това, което вече знаете. <.> Научи - това означава, напомняйки на другите, че те го знаят, както и вие. <.> Най-доброто нещо ви научи на това, което си най-вече, за да се научат. (Bach R.)

Всички slelat, както казахте

Но има два въпроса:

дали е необходимо да се свържете FTP.dll?
Аз така, така, така че опитах.
Свържете - не признава клас Private FTP Както clsFTP

". Налице е системна грешка"

Не системна грешка, krnechno и грешки VS

Вие сте един проект е отворен?
Този проект, който е clsFTP - един проект от типа Class Library - се измъкнем от него DLL.
Трябва или да започнете нов проект или да използвате стария си един. Във всеки случай, той трябва да бъде проект на прозореца на приложението - такива проекти получават Търсейки. Само такива проекти могат да бъдат "тече"

Можете също имаше проект с форма. Къде е той?

Сега за DLL връзка. Възможни са 2 опции.
1) можете да отворите приложението за Windows, добавете линк към FTP.dll
2) В проекта с отворен Windows Application добавите класове от проекта (Add-> Добавяне на съществуваща Item-> clsFTP.vb).

Този 2 напълно равни възможности. Ще опиша втория. Прави каквото ти искаш.

Научете - средства, за да открият това, което вече знаете. <.> Научи - това означава, напомняйки на другите, че те го знаят, както и вие. <.> Най-доброто нещо ви научи на това, което си най-вече, за да се научат. (Bach R.)

бл.
Разбрах, по мое мнение.
Седя си в този проект, а не в нова, точно сега, аз ще се опитам.

Нисък поклон пред вас от мен! Аз съм идиот! Убий ме, някой! Аз съм идиот! Убий ме, някой.

И "Поръчка на търпение" от втора степен, че съм идиот! Убий ме, някой! Аз съм идиот! Убий ме, някой.

Все още има много работа (за мен)

Но това е само един от 4-те компонента на програмата. Останалите са готови и работят като отделни проекти. И всичко това ще трябва да бъдат взети заедно.

Във всеки, случай Еш Благодаря отново

Eeeee! Чакай малко! Имаш повече от един файл, няколко CSV файлове, всички от които са необходими, за да изтеглите. Вие не можете да ги наричаме един по един, за да изтеглите - това е грешно!

Вместо един DownloadFile запис просто такова нещо:
Код: Избери всички Дим ите Както стринга
За всеки е В ftp.GetFileList # 40; ". * CSV" # 41;
Ако s.Length> 0 След
ftp.DownloadFile # 40; ите, "C: \ TEMP" е # 41;
Крайна сметка, ако
до

Тук GetFileList предавана от маската връща масив с имената на файловете, което е намерил в текущата директория (която е експонирана в ChangeDirectory. "За всеки е в" се спира на един от тези файлове и да го поставя в променливите с. Тогава DownloadFile изтегляния с. Тук.

Научете - средства, за да открият това, което вече знаете. <.> Научи - това означава, напомняйки на другите, че те го знаят, както и вие. <.> Най-доброто нещо ви научи на това, което си най-вече, за да се научат. (Bach R.)


ftp.ChangeDirectory ( "Данни")
Дим и низ
За всеки и В ftp.GetFileList ( "*. CSV,")
Ако s.Length> 0 След
ftp.DownloadFile (ите, "C: \ TEMP" а)
Крайна сметка, ако
до
.

грешка и ми хвърля clsFTP клас код на мястото

Ако (Не (m_iRetValue = 150 Или m_iRetValue = 125)) След това
MessageString = m_sReply
Хвърлят New IOException (m_sReply.Substring (4))
Крайна сметка, ако (zhetraya стрелка по линия 362)

Смятате Докато (True)
m_aBuffer.Clear (m_aBuffer, 0, m_aBuffer.Length)
m_iBytes = cSocket.Receive (m_aBuffer, m_aBuffer.Length, 0)
output.Write (m_aBuffer, 0, m_iBytes)

-програма направи спирка на това място:
Ако s.Length> 0 След
-нататъшни стъпки
-Програмата продължава на следващия ред (ftp.DownloadFile (S, "C: \ TEMP" и))

-стойността на "S" навсякъде "общо"
-следващата стъпка скок в клас clsFTP код и започва да го събере с лопата
-Крайна сметка, ако спирания в линия (362) clsFTP клас

може да бъде "Catch бивш Като изключение" да се опита?

1) Какво е текстът на грешката?
2) дали има папка на вашето C: \ температура? Когато имате нормална изтегляне на файлове, вие къде да го сложите? Какво е написано, а не ми
ftp.DownloadFile ( "myfile.csv", "C: \ TEMP \ myfile.csv")
3) по време = "общо" изключване е? Не "total.csv"?

Опитайте това:
След ChangeDirectory запис
Код: Избери всички Дим Пр # 40; # 41; Както стринга
ARR = ftp.GetFileList # 40; # 41 "* CSV.";

Спиране на следващия ред и се търкаля променлива Пр в Патрула. Виж, колко и кои елементи в масива.

Научете - средства, за да открият това, което вече знаете. <.> Научи - това означава, напомняйки на другите, че те го знаят, както и вие. <.> Най-доброто нещо ви научи на това, което си най-вече, за да се научат. (Bach R.)

1), 2), "- винаги има ред

3) е общо, този файл (без разширението и 0Kb) lzhit имам в папка C: \ TEMP

грешка:
Необработено грешка тип извличане "System.IO.IOExeption" произхожда от този проект
Допълнителна информация: Fole "общо" не е намерен или premission проблем

Аз съм тук, все още чувал за изчакване 30 секунди чрез FTP
И като се има предвид, че изтегля 700 Kb модем. може sdes проблем?

Watcher Watch и вероятно една и съща.
Когато спрете, отворете или Debug-> Windows-Watch, а Debug-> Прозорци-> Местните жители (прозорец DGE показват стойностите на всички локални променливи)

Това на общия файл е в C: \ температура - не е изненадващо. Той е там за изтегляне. И това е FTP? Защо казваме "не е намерен"

По отношение на инжектирането на модем - Не знам, но се съмнявам, че има изтичане на времето.
В общи линии, всичко това е странно. Да проверя в местната си FTP - строителни работи, файлове за изтегляне на всички TXT-файлове, които имам там.

Колко от вас имат CSV файл?

Научете - средства, за да открият това, което вече знаете. <.> Научи - това означава, напомняйки на другите, че те го знаят, както и вие. <.> Най-доброто нещо ви научи на това, което си най-вече, за да се научат. (Bach R.)