科技行者

行者学院 转型私董会 科技行者专题报道 网红大战科技行者

知识库

知识库 安全导航

至顶网软件频道应用软件ASP.NET虚拟主机的重大安全隐患(二)

ASP.NET虚拟主机的重大安全隐患(二)

  • 扫一扫
    分享文章到微信

  • 扫一扫
    关注官方公众号
    至顶头条

目录下有子目录和文件两种形式,必须分别对待。我们调用此程序本身对子目录进行列表显示,而文件我们需要调用showfile.aspx程序对文件的属性和内容进行显示

作者:秦海鹏 来源:yesky 2007年10月25日

关键字:

  • 评论
  • 分享微博
  • 分享邮件
删除子目录和文件的主要方法和代码:

  在删除子目录时,我们需要用到Directory.Delete (string,bool)方法,此方法有两种:

  1.public static void Delete(string);

  从指定路径删除空目录。

  2.public static void Delete(string, boolean);

  删除指定的目录并(如果指示)删除该目录中的任何子目录,将boolean设置为true的话,则删除此目录下的所有子目录和文件,否则将boolean设置为false。

  在这里我们使用了第二种方法,如果选择删除的话,将删除此目录下的所有子目录和文件。

  注意:Directory 类的所有方法都是静态的,因而无需具有目录Directory的实例就可被调用。

/*实现删除子目录的方法,此方法为VS.NET自动添加,注意DataGridCommandEventArgs e为DirGrid中 CommandName="Delete" 的ButtonColumn的事件,通过此事件,我们可以得到是那一行的ButtonColumn按钮列被点击,进而确定我们需要删除的子目录的名称*/
private void DirGrid_DeleteCommand(object source, System.Web.UI.WebControls.DataGridCommandEventArgs e){
/*定义一个单元格,e.Item为此事件所发生行的所有项目,e.Item.Cells[1]为整个行的第二个单元格的内容,在此DataGrid中为子目录的名称
*/
TableCell ItemCell = e.Item.Cells[1];
//得到此子目录的名称的字符串
string item = ItemCell.Text;
//删除此子目录
Directory.Delete(item,true);
//删除后进行数据绑定以更新数据列表
DirGrid.DataBind();
}

  在删除文件时,我们需要用到File.Delete(string path);

  注意:File 类的所有方法都是静态的,因而无需具有目录的实例就可被调用。

private void FileGrid_DeleteCommand(object source,
System.Web.UI.WebControls.DataGridCommandEventArgs e) {
TableCell ItemCell = e.Item.Cells[1];
//得到此文件名称的字符串
string item = ItemCell.Text;
//删除此文件
File.Delete(item);
//删除后进行数据绑定以更新数据列表
DirGrid.DataBind();
}

  通过上边的主要方法我们在页面上实现了一个删除某一个子目录或者文件的功能,此功能在测试时需要慎重使用,一旦删除无法通过常规方法恢复。其他如目录或文件改名、修改内容等方法都可以在此程序基础上添加相应的功能,实现方法也很简单。各位爱好者可以通过添加相应功能,使之扩充为一个基于Web的服务器文件管理系统。我们也可以由此看到这个程序的危害性,一个没有对此安全隐患采取防范措施的服务器的文件系统就都暴露在了使用此程序的用户面前。
    • 评论
    • 分享微博
    • 分享邮件
    邮件订阅

    如果您非常迫切的想了解IT领域最新产品与技术信息,那么订阅至顶网技术邮件将是您的最佳途径之一。

    重磅专题
    往期文章
    最新文章