public void Init(Vector3 initTriggerPos, TargetPositionGetter positionGetter, OnTriggerActive callBack, DirMode dirMode) { m_TriggerPosition = initTriggerPos; m_DirMode = dirMode; m_PositionGetter = positionGetter; m_OnTriggerActive = callBack; m_DirMode = dirMode; INDEX = (int)m_DirMode; }
////////////////////////////////////////////////////////// /// <summary> /// Get List of host files and directories from server /// return names in a string array /// </summary> /// <param name="sDir">Directory path. "" = CWD</param> /// <param name="nFlag">Mode</param> public string[] GetDir(string sDir, DirMode nFlag) { if(!bConnected) throw new FtpClientException("Not connected to Host"); if(!bLoggedIn) throw new FtpClientException("User not logged in"); WriteLog("Reading Directory: " + sDir); bVerbrose = false; // disable feedback Socket dSocket = CreateDataSocket(); string sCmd = "LIST " + sDir; if(nFlag == DirMode.NamesOnly) sCmd = "NLST " + sDir; string sReply = SendCommand(sCmd.Trim()); if(sReply[0] != '1') throw new FtpClientException(sReply); byte[] bytes = new byte[4096]; // buffer to receive data bytes int nBytes = 0; // number of bytes read string s = ""; // string to hold all converted ASCII data while((nBytes = dSocket.Receive(bytes,bytes.Length,0)) > 0) { s += Encoding.ASCII.GetString(bytes,0,nBytes); // convert to ASCII } dSocket.Close(); // close data connection sReply = ReadReply(); // 226- Transfer Complete bVerbrose = true; // re-enable feedback if(sReply[0] != '2') throw new FtpClientException(sReply); if(s.Length > 0) if(s[s.Length - 1] == '\n') s = s.Substring(0, s.Length - 1); // remove last "\n" return s.Replace("\r", "").Split('\n'); // convert to string array }