示例#1
0
        void onGetFiles(object sender, EventArgs e)
        {
            if (!client.isConnected())
            {
                DisplayAlert("FTP", "No server connected", "OK");
                return;
            }
            client.sendInt(packetTypes.p_dirGet);
            string path = "c:";

            client.sendInt(path.Length);
            client.sendData(Encoding.UTF8.GetBytes(path));
            int amountOfFiles;

            client.recieveInt(out amountOfFiles);
            Debug.WriteLine("Amount of files: " + amountOfFiles);
            if (amountOfFiles == packetTypes.p_isFile)
            {
                DisplayAlert("FTP", "Cannot get directory of file", "OK");
                return;
            }
            List <listItem> files = new List <listItem>();

            for (int i = 0; i < amountOfFiles; i++)
            {
                Debug.WriteLine("Getting file");
                int size;
                client.recieveInt(out size);
                Debug.WriteLine("Got size: " + size);
                byte[] name = new byte[size];
                client.recieveData(out name, size);
                Debug.WriteLine("Recieved data!");
                string nameStr = Encoding.UTF8.GetString(name, 0, size);
                Debug.WriteLine("Got name: " + nameStr);
                listItem item = new FTPApp.listItem(nameStr, path + "\\" + nameStr);
                if (nameStr.Contains(".png") || nameStr.Contains(".jpg") || nameStr.Contains(".bmp") || nameStr.Contains(".jpeg"))
                {
                    item.image = "image.png";
                }
                else if (!nameStr.Contains("."))
                {
                    item.image = "folderIcon.png";
                }
                else
                {
                    item.image = "file.png";
                }
                files.Add(item);
            }
            Navigation.PushAsync(new FileList(files, path, client));
        }
示例#2
0
        void openDirectory(string path)
        {
            switch (task)
            {
            case tasks.download:
                client.sendInt(packetTypes.p_dirGet);
                break;

            case tasks.execute:
                client.sendInt(packetTypes.p_execute);
                break;
            }
            client.sendInt(path.Length);
            client.sendData(Encoding.UTF8.GetBytes(path));
            Debug.WriteLine("Sent path: " + path);
            int amountOfFiles;

            client.recieveInt(out amountOfFiles);
            if (amountOfFiles == packetTypes.p_isFile)
            {
                if (task == tasks.download)
                {
                    saveFile(path);
                }
                else if (task == tasks.execute)
                {
                    DisplayAlert("FTP", "File opened or ran", "OK");
                }
                return;
            }
            List <listItem> files = new List <listItem>();

            for (int i = 0; i < amountOfFiles; i++)
            {
                int size;
                client.recieveInt(out size);
                byte[] name = new byte[size];
                if (client.recieveData(out name, size) == -1)
                {
                    DisplayAlert("FTP", "An error has occured. Please try again", "OK");
                    break;
                }
                string   nameStr = Encoding.UTF8.GetString(name, 0, size);
                listItem item    = new FTPApp.listItem(nameStr, path + "\\" + nameStr);
                if (nameStr.ToLower().Contains(".png") || nameStr.ToLower().Contains(".jpg") || nameStr.ToLower().Contains(".bmp") || nameStr.ToLower().Contains(".jpeg"))
                {
                    item.image = "image.png";
                }
                else if (nameStr.Equals("."))
                {
                    item.image = "refreshIcon.png";
                }
                else if (nameStr.Equals(".."))
                {
                    item.image = "backArrow.png";
                }
                else if (nameStr.ToLower().Contains(".wav") || nameStr.ToLower().Contains(".mp3") || nameStr.ToLower().Contains(".mp4") || nameStr.ToLower().Contains(".aiff") || nameStr.ToLower().Contains(".mov") || nameStr.ToLower().Contains(".wmo"))
                {
                    item.image = "mediaIcon.png";
                }
                else if (!nameStr.Contains("."))
                {
                    item.image = "folderIcon.png";
                }
                else
                {
                    item.image = "file.png";
                }
                files.Add(item);
            }
            fileSystem.ItemsSource = files;
            Title = path;
        }