예제 #1
0
        public static void HandleGetDirectoryResponse(Client client, GetDirectoryResponse packet)
        {
            if (client.Value == null || client.Value.FrmFm == null)
            {
                return;
            }

            new Thread(() =>
            {
                if (client.Value.ProcessingDirectory)
                {
                    return;
                }
                client.Value.ProcessingDirectory = true;

                client.Value.FrmFm.ClearFileBrowser();
                client.Value.FrmFm.AddItemToFileBrowser("..", "", DizinTürleri.Geri, 0);

                if (packet.Folders != null && packet.Folders.Length != 0 && client.Value.ProcessingDirectory)
                {
                    for (int i = 0; i < packet.Folders.Length; i++)
                    {
                        if (packet.Folders[i] != DELIMITER)
                        {
                            if (client.Value == null || client.Value.FrmFm == null || !client.Value.ProcessingDirectory)
                            {
                                break;
                            }

                            client.Value.FrmFm.AddItemToFileBrowser(packet.Folders[i], "", DizinTürleri.Klasör, 1);
                        }
                    }
                }

                if (packet.Files != null && packet.Files.Length != 0 && client.Value.ProcessingDirectory)
                {
                    for (int i = 0; i < packet.Files.Length; i++)
                    {
                        if (packet.Files[i] != DELIMITER)
                        {
                            if (client.Value == null || client.Value.FrmFm == null || !client.Value.ProcessingDirectory)
                            {
                                break;
                            }

                            client.Value.FrmFm.AddItemToFileBrowser(packet.Files[i],
                                                                    DosyaYardımcısı.GetDataSize(packet.FilesSize[i]), DizinTürleri.Dosya,
                                                                    DosyaYardımcısı.GetFileIcon(Path.GetExtension(packet.Files[i])));
                        }
                    }
                }

                if (client.Value != null)
                {
                    client.Value.ReceivedLastDirectory = true;
                    client.Value.ProcessingDirectory   = false;
                    if (client.Value.FrmFm != null)
                    {
                        client.Value.FrmFm.SetStatus("Hazır");
                    }
                }
            }).Start();
        }