예제 #1
0
        public void AddToZipButton_ClickHandler(object sender, EventArgs e)
        {
            string directoryFilter = string.Join("|", SelectedDirectories);

            if (!string.IsNullOrEmpty(directoryFilter))
            {
                directoryFilter = "(" + directoryFilter + ")";
            }
            else
            {
                directoryFilter = "^(.*)";
            }

            string fileFilter = string.Join("|", SelectedFiles);

            if (string.IsNullOrEmpty(fileFilter))
            {
                fileFilter = "^(" + FileManagerZipNameTextBox.Text + ")";
            }
            if (SelectedDirectories.Count() != 0)
            {
                fileFilter = "(" + fileFilter + ")|((" + directoryFilter + ")\\\\.*)";
            }
            else
            {
                fileFilter = "(" + fileFilter + ")";
            }


            FastZip zip = new FastZip();

            zip.CreateZip(RootDir + RequestedPath + "\\" + FileManagerZipNameTextBox.Text, RootDir + RequestedPath, true, fileFilter, directoryFilter);
            ActionPanel.SetActiveView(FolderContentView);
            ClearSelectedDirectories();
            ClearSelectedFiles();
        }
예제 #2
0
        private void UpdateDirectoryContentPanel()
        {
            FileManagerUpdatePanel.Triggers.Clear();
            DirectoryInfo directory = new DirectoryInfo(RootDir + RequestedPath);

            CurrentDirectoryDirectories = directory.GetDirectories();
            CurrentDirectoryFiles       = directory.GetFiles();
            HtmlTableRow header = (HtmlTableRow)fileManagerFolderContentTable.Controls[0];

            fileManagerFolderContentTable.Controls.Clear();
            fileManagerFolderContentTable.Controls.Add(header);
            if (!string.IsNullOrEmpty(RequestedPath))
            {
                HtmlTableRow tr = new HtmlTableRow();
                tr.Attributes.Add("onmouseover", "onTableRowMouseOver(this)");
                tr.Attributes.Add("onmouseout", "onTableRowMouseLeft(this)");

                HtmlTableCell checkCell = new HtmlTableCell();

                checkCell.Attributes.Add("class", "fileManagerFolderContentTableSelectCell");
                tr.Controls.Add(checkCell);

                HtmlTableCell nameCell       = new HtmlTableCell();
                LinkButton    nameLinkButton = new LinkButton();
                nameLinkButton.Text = "..";
                nameLinkButton.ID   = "..";
                if (nameLinkButton.Text.Length > 80)
                {
                    nameLinkButton.Text = nameLinkButton.Text.Substring(0, 80) + "...";
                }
                nameLinkButton.Click += new System.EventHandler(DirectoryContentLink_Click_Handler);
                nameCell.Controls.Add(nameLinkButton);
                nameCell.Attributes.Add("class", "fileManagerFolderContentTableNameCell");
                tr.Controls.Add(nameCell);

                HtmlTableCell lengthCell = new HtmlTableCell();
                lengthCell.InnerText = "Папка";
                lengthCell.Attributes.Add("class", "fileManagerFolderContentTableLengthCell");
                tr.Controls.Add(lengthCell);

                HtmlTableCell lastChangeCell    = new HtmlTableCell();
                Literal       LastChangeLiteral = new Literal();

                lastChangeCell.Controls.Add(LastChangeLiteral);
                lastChangeCell.Attributes.Add("class", "fileManagerFolderContentTableLastModificationCell");
                tr.Controls.Add(lastChangeCell);

                HtmlTableCell downloadCell = new HtmlTableCell();
                downloadCell.Attributes.Add("class", "fileManagerFolderContentTableDownloadCell");
                tr.Controls.Add(downloadCell);

                HtmlTableCell deleteCell = new HtmlTableCell();
                deleteCell.Attributes.Add("class", "fileManagerFolderContentTableDeleteCell");
                tr.Controls.Add(deleteCell);

                fileManagerFolderContentTable.Controls.Add(tr);
            }
            foreach (DirectoryInfo dir in CurrentDirectoryDirectories)
            {
                HtmlTableRow tr = new HtmlTableRow();
                tr.Attributes.Add("onmouseover", "onTableRowMouseOver(this)");
                tr.Attributes.Add("onmouseout", "onTableRowMouseLeft(this)");
                tr.Attributes.Add("onclick", "onTableRowClick(this, event);");

                HtmlTableCell checkCell = new HtmlTableCell();
                CheckBox      check     = new CheckBox();
                check.ID = dir.Name.GetHashCode() + "$Directory";
                checkCell.Controls.Add(check);
                if (SelectedDirectories.Contains(dir.Name))
                {
                    check.Checked = true;
                }
                check.Attributes.Add("onclick", "stopBubble(event);");
                checkCell.Attributes.Add("class", "fileManagerFolderContentTableSelectCell");
                tr.Controls.Add(checkCell);

                HtmlTableCell nameCell       = new HtmlTableCell();
                LinkButton    nameLinkButton = new LinkButton();
                nameLinkButton.Text = dir.Name;
                nameLinkButton.ID   = dir.Name.GetHashCode().ToString();
                if (nameLinkButton.Text.Length > 80)
                {
                    nameLinkButton.Text = nameLinkButton.Text.Substring(0, 80) + "...";
                }
                nameLinkButton.Click += new System.EventHandler(DirectoryContentLink_Click_Handler);
                nameCell.Controls.Add(nameLinkButton);
                nameCell.Attributes.Add("class", "fileManagerFolderContentTableNameCell");
                tr.Controls.Add(nameCell);

                HtmlTableCell lengthCell = new HtmlTableCell();
                lengthCell.InnerText = "Папка";
                lengthCell.Attributes.Add("class", "fileManagerFolderContentTableLengthCell");
                tr.Controls.Add(lengthCell);

                HtmlTableCell lastChangeCell    = new HtmlTableCell();
                Literal       LastChangeLiteral = new Literal();
                LastChangeLiteral.Text = dir.LastWriteTime.ToString("dd MMM yyyy H:MM", CultureInfo.CreateSpecificCulture("en-US")).ToUpper();
                lastChangeCell.Controls.Add(LastChangeLiteral);
                lastChangeCell.Attributes.Add("class", "fileManagerFolderContentTableLastModificationCell");
                tr.Controls.Add(lastChangeCell);


                HtmlTableCell downloadCell = new HtmlTableCell();
                downloadCell.Attributes.Add("class", "fileManagerFolderContentTableDownloadCell");

                tr.Controls.Add(downloadCell);

                HtmlTableCell deleteCell = new HtmlTableCell();
                deleteCell.Attributes.Add("class", "fileManagerFolderContentTableDeleteCell");
                ImageButton deleteButton = new ImageButton();
                deleteButton.ImageUrl      = "images/delete.png";
                deleteButton.ToolTip       = "Удалить";
                deleteButton.AlternateText = "Удалить";
                deleteButton.ID            = dir.Name.GetHashCode() + "_deleteButton";
                deleteButton.CommandName   = dir.Name;
                deleteButton.Command      += new System.Web.UI.WebControls.CommandEventHandler(DeleteButton_ClickHandler);

                ConfirmButtonExtender es = new ConfirmButtonExtender();
                es.ID = dir.Name.GetHashCode().ToString() + "_DeleteConfirmer";
                es.TargetControlID = deleteButton.ID;
                es.ConfirmText     = "Вы дейстивтельно хотите удалить эту папку?";

                deleteCell.Controls.Add(es);

                deleteCell.Controls.Add(deleteButton);

                tr.Controls.Add(deleteCell);


                fileManagerFolderContentTable.Controls.Add(tr);
            }

            foreach (FileInfo file in CurrentDirectoryFiles)
            {
                HtmlTableRow tr = new HtmlTableRow();
                tr.Attributes.Add("onmouseover", "onTableRowMouseOver(this)");
                tr.Attributes.Add("onmouseout", "onTableRowMouseLeft(this)");
                tr.Attributes.Add("onclick", "onTableRowClick(this, event);");

                HtmlTableCell checkCell = new HtmlTableCell();
                CheckBox      check     = new CheckBox();
                check.Attributes.Add("onclick", "stopBubble(event);");
                check.ID = file.Name.GetHashCode() + "$File";
                if (SelectedFiles.Contains(file.Name))
                {
                    check.Checked = true;
                }
                checkCell.Controls.Add(check);
                checkCell.Attributes.Add("class", "fileManagerFolderContentTableSelectCell");
                tr.Controls.Add(checkCell);

                HtmlTableCell nameCell = new HtmlTableCell();
                HtmlAnchor    nameLink = new HtmlAnchor();
                nameLink.ID        = file.Name.GetHashCode() + "Link";
                nameLink.HRef      = Request.AppRelativeCurrentExecutionFilePath + "?path=" + RequestedPath + "\\" + file.Name;
                nameLink.InnerText = file.Name;
                if (nameLink.InnerText.Length > 80)
                {
                    nameLink.InnerText = nameLink.InnerText.Substring(0, 80) + "...";
                }
                var nameLinkContainer = new HtmlGenericControl("div");
                nameLinkContainer.Controls.Add(nameLink);
                nameCell.Controls.Add(nameLinkContainer);
                nameCell.Attributes.Add("class", "fileManagerFolderContentTableNameCell");
                tr.Controls.Add(nameCell);


                HtmlTableCell lengthCell    = new HtmlTableCell();
                Literal       lengthLiteral = new Literal();
                long          length        = 0;
                if (Cache[file.FullName + "_Length"] != null)
                {
                    length = (long)Cache[file.FullName + "_Length"];
                }
                else
                {
                    length = file.Length;
                    CacheDependency cd = new CacheDependency(file.FullName);
                    Cache.Insert(file.FullName + "_Length", length, cd, DateTime.MaxValue, TimeSpan.FromMinutes(5));
                }
                lengthLiteral.Text = Math.Ceiling((double)length / 1024).ToString() + " КБ";
                lengthCell.Controls.Add(lengthLiteral);
                lengthCell.Attributes.Add("class", "fileManagerFolderContentTableLengthCell");
                tr.Controls.Add(lengthCell);

                HtmlTableCell lastChangeCell    = new HtmlTableCell();
                Literal       LastChangeLiteral = new Literal();
                DateTime      lastChange;
                if (Cache[file.FullName + "_LastWriteTime"] != null)
                {
                    lastChange = (DateTime)Cache[file.FullName + "_LastWriteTime"];
                }
                else
                {
                    lastChange = file.LastWriteTime;
                    Cache.Insert(file.FullName + "_LastWriteTime", lastChange, null, DateTime.MaxValue, TimeSpan.FromMinutes(5));
                }
                LastChangeLiteral.Text = lastChange.ToString("dd MMM yyyy H:MM", CultureInfo.CreateSpecificCulture("en-US")).ToUpper();
                lastChangeCell.Controls.Add(LastChangeLiteral);
                lastChangeCell.Attributes.Add("class", "fileManagerFolderContentTableLastModificationCell");
                tr.Controls.Add(lastChangeCell);

                HtmlTableCell downloadCell = new HtmlTableCell();
                downloadCell.Attributes.Add("class", "fileManagerFolderContentTableDownloadCell");
                ImageButton downButton = new ImageButton();
                downButton.ImageUrl      = "images/download.png";
                downButton.AlternateText = "Скачать";
                downButton.ToolTip       = "Скачать";
                downButton.ID            = file.Name + "_downlodButton";
                downButton.Attributes.Add("onclick", "downloadFile(event, \'" + RequestedPath + file.Name + "\');");
                downloadCell.Controls.Add(downButton);

                tr.Controls.Add(downloadCell);

                HtmlTableCell deleteCell = new HtmlTableCell();
                deleteCell.Attributes.Add("class", "fileManagerFolderContentTableDeleteCell");
                ImageButton deleteButton = new ImageButton();
                deleteButton.ImageUrl      = "images/delete.png";
                deleteButton.ToolTip       = "Удалить";
                deleteButton.AlternateText = "Удалить";
                deleteButton.ID            = file.Name.GetHashCode() + "_deleteButton";
                deleteButton.CommandName   = file.Name;
                deleteButton.Command      += new System.Web.UI.WebControls.CommandEventHandler(DeleteButton_ClickHandler);
                deleteCell.Controls.Add(deleteButton);

                ConfirmButtonExtender es = new ConfirmButtonExtender();
                es.ID = file.Name.GetHashCode() + "_DeleteConfirmer";
                es.TargetControlID = deleteButton.ID;
                es.ConfirmText     = "Вы дейстивтельно хотите удалить этот файл?";

                deleteCell.Controls.Add(es);

                deleteCell.Controls.Add(deleteButton);

                tr.Controls.Add(deleteCell);

                fileManagerFolderContentTable.Controls.Add(tr);
            }
        }