ftp GoldRaccoon

rusli
Site Admin
文章: 212
註冊時間: 週三 7月 07, 2010 9:49 pm

ftp GoldRaccoon

文章rusli » 週三 3月 23, 2016 6:47 pm

ftp.zip
(84.29 KiB) 已下載 26 次


https://github.com/albertodebortoli/GoldRaccoon

代碼: 選擇全部


# Podfile
pod 'GoldRaccoon'



[output]
**: /Images/6E002CLP_LRG.jpg 17% 24274.0 4320 24 KB
**: /Images/6E002CLP_LRG.jpg 29% 24274.0 7200 24 KB
**: /Images/6E002CLP_LRG.jpg 35% 24274.0 8640 24 KB
**: /Images/6E002CLP_LRG.jpg 47% 24274.0 11520 24 KB
**: /Images/6E002CLP_LRG.jpg 59% 24274.0 14400 24 KB
**: /Images/6E002CLP_LRG.jpg 65% 24274.0 15840 24 KB
**: /Images/6E002CLP_LRG.jpg 71% 24274.0 17280 24 KB
**: /Images/6E002CLP_LRG.jpg 77% 24274.0 18720 24 KB
**: /Images/6E002CLP_LRG.jpg 88% 24274.0 21600 24 KB
**: /Images/6E002CLP_LRG.jpg 94% 24274.0 23040 24 KB
**: /Images/6E002CLP_LRG.jpg 100% 24274.0 24274 24 KB
/Images/6E002CLP_LRG.jpg 24274.0 1.0 /Users/R/Library/Developer/CoreSimulator/Devices/032DCE42-3A35-4D12-8831-44B0B1A581EE/data/Containers/Data/Application/18A2F61B-0B63-4855-BD1A-A4B59BC310D6/Library/Application Supportcom.ftp ftp://XX.com/Images/6E002CLP_LRG.jpg

rusli
Site Admin
文章: 212
註冊時間: 週三 7月 07, 2010 9:49 pm

Re: ftp GoldRaccoon

文章rusli » 週四 3月 24, 2016 10:23 am

代碼: 選擇全部


import UIKit
import GoldRaccoon

extension Float
{
    func toInt64() -> Int64 {
        if self > Float(Int64.min) && self < Float(Int64.max) {
            return Int64(self)
        } else {
            return 0
        }
    }
}

struct FtpSetting
{
    static var Host: String = "XX.com"
    static var Account: String = "id@XX.com"
    static var Pwd: String = "*****"
}

class ViewController: UIViewController, GRRequestsManagerDelegate
{
    var requestsManager: GRRequestsManager = GRRequestsManager(hostname: FtpSetting.Host, user: FtpSetting.Account, password: FtpSetting.Pwd)

    let localPath = NSSearchPathForDirectoriesInDomains(.ApplicationSupportDirectory, .UserDomainMask, true).first! + NSBundle.mainBundle().bundleIdentifier!
   
    override func viewDidLoad() {
        super.viewDidLoad()
        // Do any additional setup after loading the view, typically from a nib.
       
        self.requestsManager.delegate = self
       
       
        self.requestsManager.stopAndCancelAllRequests()
        self.requestsManager.addRequestForListDirectoryAtPath("/Images/")
        self.requestsManager.startProcessingRequests()
    }

    override func didReceiveMemoryWarning() {
        super.didReceiveMemoryWarning()
        // Dispose of any resources that can be recreated.
    }


    func requestsManager(requestsManager: GRRequestsManagerProtocol!, didCompleteListingRequest request: GRRequestProtocol!, listing: [AnyObject]!)
    {
        let filteredArray = listing.filter({ ($0 as! String).lowercaseString.hasSuffix(".") == false })
       
        for o in filteredArray
        {
            let fileName: String = o as! String
           
            let remotePath: String = "/\(request.path)/\(fileName)"
            self.requestsManager.addRequestForDownloadFileAtRemotePath(remotePath, toLocalPath: localPath)
   
        }
    }
   
    func DownloadFileRequest(request: GRRequestProtocol!, conditions: () -> String)
    {

    }
   
    func requestsManager(requestsManager: GRRequestsManagerProtocol!, didScheduleRequest request: GRRequestProtocol!)
    {
       
    }
   
    func requestsManager(requestsManager: GRRequestsManagerProtocol!, didFailWritingFileAtPath path: String!, forRequest request: GRDataExchangeRequestProtocol!, error: NSError!)
    {
        print("didFailWritingFileAtPath:\(error)")
    }
   
    func requestsManager(requestsManager: GRRequestsManagerProtocol!, didFailRequest request: GRRequestProtocol!, withError error: NSError!)
    {
        print("Download Fail: \(request.path) -> \(error)")
    }
   
    func requestsManager(requestsManager: GRRequestsManagerProtocol!, didCompletePercent percent: Float, forRequest request: GRRequestProtocol!)
    {
        //print(request.maximumSize)
        //print(request.maximumSize.toInt64())
        //print(request.path)
        //print(Int64(request.maximumSize))
       
        let totalMegs = NSByteCountFormatter.stringFromByteCount(request.maximumSize.toInt64(), countStyle: NSByteCountFormatterCountStyle.File)
       
        print("**: \(request.path) \(Int(percent * 100))% \(request.maximumSize) \(request.streamInfo.bytesTotal) \(totalMegs)")
    }
   
    func requestsManager(requestsManager: GRRequestsManagerProtocol!, didCompleteDownloadRequest request: GRDataExchangeRequestProtocol!)
    {
        print("\(request.path) \(request.maximumSize) \(request.percentCompleted) \(request.localFilePath)  \(request.fullRemotePath)")
    }
}


回到「Swift」

誰在線上

正在瀏覽這個版面的使用者:沒有註冊會員 和 0 位訪客