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(); }
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); } }