BananaFredSoft Posted February 26, 2008 Share Posted February 26, 2008 (edited) I have three questions about FTP.au3. 1. I made a function to return the contents of the folder: expandcollapse popupFunc List ($dir2) $array = _ArrayCreate(0) $first = _FTPFindFirstFile($Connection, $dir2) Do $next = _FTPFindNextFile($first, "*.*", 3) $error = @error _ArrayAdd($array, $next[6]) $array[0] += 1 Until $error _FTPClose($first) Return $array EndFuncoÝ÷ Ù»ò.±è¶§i×h×¥z×~)^¶§ºÇ¢¶+]¡ë'ßÛkzÛ«©î¥ÖyÛޮȨíçè׫jr&jG¢¶·º¹Úê]j×½êìöZ§"Úò¶¬ÚÞ¶êç³F®¶sbb33c·&VED2ÒgV÷C¶fÆRçGBgV÷C°¢b33c¶F"ÒgV÷C²ògV÷C°¢b33c¶æWvæÖRÒgV÷C¶fÆS"çGBgV÷C°¥ôeE&VæÖTfÆRb33c´6öææV7FöâÂb33c¶F"fײb33c·&VED2Âb33c¶F"fײb33c¶æWvæÖRoÝ÷ ئ²êÞ¶¶WÆ+-±hZµ©v§ è Ç£¶Ø^v'¥«a¡öW©ä²)Úvö§qáÞ謶¬r¸©¶ØZ´¦Âäx(ØZ¶¬jYh~Ø^±ëax,jëh×6#include <FTP.au3> #include <FTP2.au3> #include <GUIConstants.au3> #include <File.au3> #include <String.au3> #include <GuiListView.au3> $conts = _ArrayCreate(0) $dir = "/" #Region ### START Koda GUI section ### Form= $Form1 = GUICreate("FTP Sign-in", 310, 147, 193, 115) $Combo1 = GUICtrlCreateCombo(IniRead(@ScriptDir & "\FTPClientData.data", "Main", "SavedServer", ""), 48, 16, 257, 25) $Label1 = GUICtrlCreateLabel("Server:", 8, 16, 38, 17) $Label2 = GUICtrlCreateLabel("Username:", 8, 48, 55, 17) $Input1 = GUICtrlCreateInput(IniRead(@ScriptDir & "\FTPClientData.data", "Main", "SavedUserName", ""), 64, 48, 233, 21) $Label3 = GUICtrlCreateLabel("Password:", 8, 80, 53, 17) $Input2 = GUICtrlCreateInput(_StringEncrypt(0, IniRead(@ScriptDir & "\FTPClientData.data", "Main", "SavedPassword", ""), "12fHjkd73n"), 64, 80, 233, 21, $ES_PASSWORD) $Button1 = GUICtrlCreateButton("Sign In", 8, 112, 291, 25, 0) GUISetState(@SW_SHOW) #EndRegion ### END Koda GUI section ### While 1 $nMsg = GUIGetMsg() Switch $nMsg Case $GUI_EVENT_CLOSE Exit Case $Button1 If BitAND(GUICtrlRead($Input1) <> IniRead(@ScriptDir & "\FTPClientData.data", "Main", "SavedUserName", ""), GUICtrlRead($Combo1) <> IniRead(@ScriptDir & "\FTPClientData.data", "Main", "SavedServer", "")) Then If MsgBox(4, "Save Username/Server?", "Should the username,and server automatically be entered from now on?") = 6 Then IniWrite(@ScriptDir & "\FTPClientData.data", "Main", "SavedServer", GUICtrlRead($Combo1)) IniWrite(@ScriptDir & "\FTPClientData.data", "Main", "SavedUserName", GUICtrlRead($Input1)) If MsgBox(4, "Save password?", "Should the password be automatically entered from now on?") = 6 Then IniWrite(@ScriptDir & "\FTPClientData.data", "Main", "SavedPassword", _StringEncrypt(1, GUICtrlRead($Input2), "12fHjkd73n")) EndIf EndIf EndIf $handle = DLLOpen('wininet.dll') $Session = _FtpOpen("MyFTP Control") $Connection = _FTPConnect($Session, GUICtrlRead($Combo1), GUICtrlRead($Input1), GUICtrlRead($Input2), 21, 1, 0x8000000) If $Connection <> 0 Then $Server = GUICtrlRead($Combo1) $Password = GUICtrlRead($Input2) $UserName = GUICtrlRead($Input1) GUIDelete($Form1) ExitLoop Else MsgBox(0, "Connection Error", "There has been a connection error. The server, password, or account name may be incorrect.") EndIf EndSwitch WEnd #Region ### START Koda GUI section ### Form=C:\Documents and Settings\Colin\My Documents\ftp.kxf $Form1 = GUICreate("FTP Client", 633, 449, 193, 115) $CurrentAdress = GUICtrlCreateLabel($Server, 192, 8, 300) $ListView1 = GUICtrlCreateListView("File Name", 8, 32, 513, 409) _GUICtrlListView_SetColumnWidth($ListView1, 0, 500) $Button3 = GUICtrlCreateButton("Delete", 528, 32, 99, 25, 0) $Button4 = GUICtrlCreateButton("Rename", 528, 64, 99, 25, 0) $Button5 = GUICtrlCreateButton("Download", 528, 96, 99, 25, 0) $Button6 = GUICtrlCreateButton("Copy Path", 528, 128, 97, 25, 0) $Button7 = GUICtrlCreateButton("Upload File", 528, 200, 97, 25) $UploadDirectory = GUICtrlCreateButton("Upload Folder", 528, 232, 97, 25) $CreateDirectory = GUICtrlCreateButton("Create Directory", 528, 264, 97, 25) $FileSize = GUICtrlCreateLabel("", 528, 160, 34, 17) GUISetState(@SW_SHOW) $read = List("/") For $i = 1 to $read[0] $a = GUICtrlCreateListViewItem($read[$i], $ListView1) _ArrayAdd($conts, $a) $conts[0] += 1 Next #EndRegion ### END Koda GUI section ### While 1 $nMsg = GUIGetMsg() Switch $nMsg Case $GUI_EVENT_CLOSE _FTPClose($Session) Exit Case $CreateDirectory $dirname = InputBox("Folder Name", "Please enter the name of the folder you want to create.") If not @error Then $return = _FTPMakeDir($Connection, $dirname) If $return Then RedoList($dir) MsgBox(0, "Folder Create", "The folder was successfully created.") Else MsgBox(0, "Folder Create", "The folder creation failed.") EndIf EndIf Case $Button5 $readC = GUICtrlRead($ListView1) If $readC <> 0 Then $readTC = StringTrimRight(GUICtrlRead($readC), 1) $save = FileSaveDialog("Download " & $readTC, "", "All Files (*.*)", -1, $readTC) $get = _FTPGetFile($Connection, "/" & $readTC, $save) If $get Then MsgBox(0, "File Download", "The file was successfully downloaded.") ShellExecute($save) Else MsgBox(0, "File Download", "The file download failed.") EndIf EndIf Case $Button7 $from = FileOpenDialog("Upload File", "", "All Files (*.*)") If FileExists($from) Then $upload = _FTPPutFile($Connection, $from, "/" & getname($from)) If $upload Then RedoList($dir) MsgBox(0, "File Uploaded", "Your file has been successfully uploaded.") Else MsgBox(0, "Upload Failed", "The file upload has failed.") EndIf EndIf Case $UploadDirectory $directory = FileSelectFolder("Choose a folder to upload.", "") If FileExists($directory) Then _FTPPutFolderContents($Connection, $directory, $dir, 1) RedoList($dir) EndIf Case $Button3 $readC = GUICtrlRead($ListView1) If $readC <> 0 Then $readTC = StringTrimRight(GUICtrlRead($readC), 1) If MsgBox(4, "Confirm File Delete", "Are you sure you want to delete " & $readTC & "?") = 6 Then $del = _FTPDelFile($Connection, "/" & $readTC) If $del = 1 Then RedoList($dir) MsgBox(0, "Deletion Successful", "The file you selected has been deleted.") Else MsgBox(0, "Deletion Failed", "The file deletion failed.") EndIf EndIf EndIf Case $Button4 $readC = GUICtrlRead($ListView1) If $readC <> 0 Then $readTC = StringTrimRight(GUICtrlRead($readC), 1) $newname = InputBox("Rename File", "Please enter the new name for this file.", $readTC) If Not @error Then $rename = _FTPRenameFile($Connection, "/" & $readTC, "/" & $newname) If $rename Then RedoList($dir) MsgBox(0, "File Rename", "The file has been successfully renamed.") Else MsgBox(0, "File Rename", "The file rename failed.") EndIf EndIf EndIf Case $ListView1 $readread = StringTrimRight(GUICtrlRead(GUICtrlRead($ListView1)), 1) If $readread Then If StringInStr($readread, ".") = 0 Then $dir = $dir & $readread RedoList($dir) EndIf Else $dir = "/" RedoList($dir) EndIf EndSwitch WEnd Func List ($dir2) $array = _ArrayCreate(0) $first = _FTPFindFirstFile($Connection, $dir2) Do $next = _FTPFindNextFile($first, "*.*", 3) $error = @error _ArrayAdd($array, $next[6]) $array[0] += 1 Until $error _FTPClose($first) Return $array EndFunc Func getdir($filename) $split = StringSplit($filename, "\") If Not @error Then $dira = "" $num = 1 Do $dira &= $split[$num] & "\" $num += 1 Until $num = $split[0] Return $dira EndIf EndFunc ;==>getdir Func getname($filename) Return StringReplace($filename, getdir($filename), "") EndFunc Func RedoList($dir3 = "/") GUICtrlSetData($CurrentAdress, $Server & $dir3) _FTPSetCurrentDir($Connection, $dir3) For $i = 1 To $conts[0] GUICtrlDelete($conts[$i]) Next $conts = _ArrayCreate(0) $read = List($dir3) For $i = 1 to $read[0] $a = GUICtrlCreateListViewItem($read[$i], $ListView1) _ArrayAdd($conts, $a) $conts[0] += 1 Next EndFunc Func S ($read) $StringSplitArray = StringSplit($read, "|") Return $StringSplitArray[0] EndFunc Edited March 9, 2008 by BananaFredSoft -ColinSite:www.bananafredsoft.comStuff:Simple Text Editor - MediaPlayer - Animator - BananaDB - BananaNotes - Chatta - Filesearch - Excuse GeneratorMy YouTube channel:http://www.youtube.com/user/colipat Link to comment Share on other sites More sharing options...
LOULOU Posted February 26, 2008 Share Posted February 26, 2008 I have three questions about FTP.au3. 1. I made a function to return the contents of the folder: Func List ($dir2) $array = _ArrayCreate(0) $first = _FTPFindFirstFile($Connection, $dir2) Do $next = _FTPFindNextFile($first, "*.*", 3) $error = @error _ArrayAdd($array, $next[6]) $array[0] += 1 Until $error _FTPClose($first) Return $array EndFuncoÝ÷ Ù»ò.±è¶§i×h×¥z×~)^¶§ºÇ¢¶+]¡ë'ßÛkzÛ«©î¥ÖyÛޮȨíçè׫jr&jG¢¶·º¹Úê]j×½êìöZ§"Úò¶¬ÚÞ¶êç³F®¶sbb33c·&VED2ÒgV÷C¶fÆRçGBgV÷C°¢b33c¶F"ÒgV÷C²ògV÷C°¢b33c¶æWvæÖRÒgV÷C¶fÆS"çGBgV÷C°¥ôeE&VæÖTfÆRb33c´6öææV7FöâÂb33c¶F"fײb33c·&VED2Âb33c¶F"fײb33c¶æWvæÖR I am sure that the file exists. What am I doing wrong? 3. How can I get the download path of a file? Thanks in advance. Verify that the ftp is open like that $dllhandle = DllOpen('wininet.dll') $Open = _FTPOpen ('MyFTP Control',0) If @error Then Failed("Open") $Conn = _FTPConnect ($Open, $server,$username,$pass,21,1, 0x08000000,0) If @error Then Failed("Connect") Link to comment Share on other sites More sharing options...
BananaFredSoft Posted February 26, 2008 Author Share Posted February 26, 2008 I'm sure it's open. -ColinSite:www.bananafredsoft.comStuff:Simple Text Editor - MediaPlayer - Animator - BananaDB - BananaNotes - Chatta - Filesearch - Excuse GeneratorMy YouTube channel:http://www.youtube.com/user/colipat Link to comment Share on other sites More sharing options...
LOULOU Posted February 26, 2008 Share Posted February 26, 2008 I'm sure it's open.Yes but verify that you enter in passive mode (0x8000000), main of the problem comes from that's Link to comment Share on other sites More sharing options...
BananaFredSoft Posted February 27, 2008 Author Share Posted February 27, 2008 (edited) How do I do that? Which question does this answer? Edited February 27, 2008 by BananaFredSoft -ColinSite:www.bananafredsoft.comStuff:Simple Text Editor - MediaPlayer - Animator - BananaDB - BananaNotes - Chatta - Filesearch - Excuse GeneratorMy YouTube channel:http://www.youtube.com/user/colipat Link to comment Share on other sites More sharing options...
BananaFredSoft Posted March 1, 2008 Author Share Posted March 1, 2008 I tried putting "0x0000008" in the Flags part of FTP connect and it didn't help. I still haven't figured out or fixed any of the questions... -ColinSite:www.bananafredsoft.comStuff:Simple Text Editor - MediaPlayer - Animator - BananaDB - BananaNotes - Chatta - Filesearch - Excuse GeneratorMy YouTube channel:http://www.youtube.com/user/colipat Link to comment Share on other sites More sharing options...
BananaFredSoft Posted March 3, 2008 Author Share Posted March 3, 2008 Bump. -ColinSite:www.bananafredsoft.comStuff:Simple Text Editor - MediaPlayer - Animator - BananaDB - BananaNotes - Chatta - Filesearch - Excuse GeneratorMy YouTube channel:http://www.youtube.com/user/colipat Link to comment Share on other sites More sharing options...
BananaFredSoft Posted March 6, 2008 Author Share Posted March 6, 2008 Bump. -ColinSite:www.bananafredsoft.comStuff:Simple Text Editor - MediaPlayer - Animator - BananaDB - BananaNotes - Chatta - Filesearch - Excuse GeneratorMy YouTube channel:http://www.youtube.com/user/colipat Link to comment Share on other sites More sharing options...
BananaFredSoft Posted March 8, 2008 Author Share Posted March 8, 2008 Bump. Could someone at least tell me why no one is replying? -ColinSite:www.bananafredsoft.comStuff:Simple Text Editor - MediaPlayer - Animator - BananaDB - BananaNotes - Chatta - Filesearch - Excuse GeneratorMy YouTube channel:http://www.youtube.com/user/colipat Link to comment Share on other sites More sharing options...
Zedna Posted March 8, 2008 Share Posted March 8, 2008 Bump. Could someone at least tell me why no one is replying?You didn't post whole reproducing script. Resources UDF ResourcesEx UDF AutoIt Forum Search Link to comment Share on other sites More sharing options...
BananaFredSoft Posted March 9, 2008 Author Share Posted March 9, 2008 Thanks! I added it to the main post. -ColinSite:www.bananafredsoft.comStuff:Simple Text Editor - MediaPlayer - Animator - BananaDB - BananaNotes - Chatta - Filesearch - Excuse GeneratorMy YouTube channel:http://www.youtube.com/user/colipat Link to comment Share on other sites More sharing options...
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now