/// <summary>
/// 创建新文件
/// </summary>
/// <param name="parentPath">文件路径</param>
/// <param name="FileName">文件名称</param>
public void AddFile(string parentPath, string FileName)
{
parentPath = Server.MapPath(parentPath);
bool flag = !Directory.Exists(parentPath + FileName);
if (!flag)
{
HttpContext.Current.Response.Write("<script>alert('该文件以存在');history.go(-1);</script>\uFFFD");
HttpContext.Current.Response.End();
}
else
{
Directory.CreateDirectory(parentPath + FileName);
}
}
/// <summary>
/// 删除文件
/// </summary>
/// <param name="fileName">文件路径</param>
/// <param name="fileType">文件类型</param>
public void Delete(string fileurl, string fileType)
{
bool flag = fileType != "file";//判断文件的类型 file为文件 folder 为文件夹
if (!flag)
{//删除文件
flag = File.Exists(fileurl);
if (flag)
{
File.Delete(fileurl);
}
}
else
{//删除文件夹
flag = Directory.Exists(fileurl);
if (flag)
{
DirectoryInfo directoryInfo = new DirectoryInfo(fileurl);
flag = (directoryInfo.GetDirectories().Length <= 0) && (directoryInfo.GetFiles().Length <= 0);
if (!flag)
{
HttpContext.Current.Response.Write("<script>alert('请先删除文件的子文件');history.go(-1);</script>");
HttpContext.Current.Response.End();
}
else
{
Directory.Delete(fileurl);
}
}
}
}
/// <summary>
/// 获得指定文件的文件内容
/// </summary>
/// <param name="parentPath">相对路径</param>
/// <returns></returns>
public DataSet GetFileList(string parentPath)
{
DataRow row;
string filePath = parentPath;
DataSet set = new DataSet();
DataTable table = new DataTable();
table.Columns.Add("FileType");//指定文件类型 folder 为文件夹
table.Columns.Add("FileName");//文件名称
table.Columns.Add("FileIcon");//文件的图标
table.Columns.Add("FileUrl");//文件的相对路径+文件名称
table.Columns.Add("FilePath");//文件的相对路径
table.Columns.Add("FileSize");//文件大小
table.Columns.Add("FileUrlType");//文件的相对路径+文件名称+类型
DirectoryInfo info = new DirectoryInfo(HttpContext.Current.Server.MapPath(filePath));
foreach (DirectoryInfo info2 in info.GetDirectories())
{//调取文件夹
row = table.NewRow();
row["FileType"] = "folder";
row["FileName"] = info2.Name;
row["FileIcon"] = "<img src=\"Images/closedfolder.gif\" border=\"0\" />";
row["FileUrl"] = filePath + "/" + info2.Name;
row["FilePath"] = filePath;
row["FileSize"] = "";
row["FileUrlType"] = filePath + "/" + info2.Name + ";" + "folder";
table.Rows.Add(row);
}
foreach (FileInfo info3 in info.GetFiles())
{//调取文件
row = table.NewRow();
row["FileType"] = "file";
row["FileName"] = info3.Name;
row["FileIcon"] = "<img src=\"Images/FileIcon/.gif\" class=\"itemimg\" />";//根据扩展名获得Icon
row["FileUrl"] = filePath + "/" + info3.Name;
row["FilePath"] = filePath;
row["FileSize"] = (info3.Length / 0x3e8L) + "K";
row["FileUrlType"] = filePath + "/" + info3.Name + ";" + "file";
table.Rows.Add(row);
}
set.Tables.Add(table);
return set; }

C# Web对文件的管理的更多相关文章

  1. 在Web.Config文件中使用configSource,避免动态修改web.config导致asp.net重启(另添加一个Config文件用于管理用户数据)

    原文:在Web.Config文件中使用configSource,避免动态修改web.config导致asp.net重启(另添加一个Config文件用于管理用户数据) 我们都知道,在asp.net中修改 ...

  2. #WEB安全基础 : HTML/CSS | 0x3文件夹管理网站

    没有头脑的管理方式会酿成大灾难,应该使用文件夹管理网站 这是一个典型的管理方法,现在传授给你,听好了 下面是0x3初识a标签里使用的网站的目录,我把它重新配置了一下

  3. ASP.NET Web API 文件產生器 - 使用 Swagger

    转帖:http://kevintsengtw.blogspot.hk/2015/12/aspnet-web-api-swagger.html Swagger 是一套 API 互動文件產生器,使用 HT ...

  4. .net中Web.config文件的基本原理及相关设置

    11.7  使用web.config配置文件 Web配置文件web.config是Web 应用程序的数据设定文件,它是一份 XML 文件,内含 Web 应用程序相关设定的 XML 标记,可以用来简化  ...

  5. HTTP 错误 500.19 – Internal Server Error web.config 文件的 system.webServer/httpErrors 节中不允许绝对物理路径“C:\inetpub\custerr”[转]

    给ASP或者ASP.NET等需要配置IIS服务器的过程中,很可能会遇到以下两种错误.尤其是用Win7系统的,配置IIS7.0版本比用XP系统配置IIS5.1版本而言要复杂复杂一些.当同时需要配置ASP ...

  6. 容器加載Web工程的Web.xml文件介紹

    转 容器加載Web工程的Web.xml文件介紹 [-] 这篇文章主要是综合网上关于webxml的一些介绍希望对大家有所帮助也欢迎大家一起讨论 ---题记 一            Webxml详解 一 ...

  7. web大文件上传(web应用---SSH框架)

    版权所有 2009-2018荆门泽优软件有限公司 保留所有权利 官方网站:http://www.ncmem.com/ 产品首页:http://www.ncmem.com/webapp/up6.2/in ...

  8. Spring整合Hibernate的XML文件配置,以及web.xml文件配置

    利用Spring整合Hibernate时的XML文件配置 applicationContext.xml <?xml version="1.0" encoding=" ...

  9. 七牛云存储的 Javascript Web 前端文件上传

    因为我的个人网站 restran.net 已经启用,博客园的内容已经不再更新.请访问我的个人网站获取这篇文章的最新内容,七牛云存储的 Web 前端文件上传 七牛是不错的云存储产品,特别是有免费的配额可 ...

随机推荐

  1. Modulo Sum(背包 + STL)

     Modulo Sum time limit per test 2 seconds memory limit per test 256 megabytes input standard input o ...

  2. 说说ShellExecuteEx

    今天来说说ShellExecuteEx这个函数,先翻译MSDN,然后看个样例. ShellExecuteEx Function 对指定应用程序运行某个操作 语法: BOOL ShellExecuteE ...

  3. 多点触控插件Hammer.js

    插件描述:Hammer.js是一个开源的,轻量级的javascript库,它可以在不需要依赖其他东西的情况下识别触摸,鼠标事件. 使用方法: <script src=<span class ...

  4. ECSHOP首页站内快讯在哪里添加和修改?

    “添加新闻后在首页站内快讯处显示不出来?”.“请问首页中站内快讯(最新文章)在后台哪个位置管理”.“如何让发布的文章进入首页站内快讯”等等诸如此类的问题,经常在论坛里看到一些朋友在询问. 本ECSHO ...

  5. ADT "Running Android Lint" has encountered a problem

    解决办法: Window--->Preferences----->Android--------> LInt Error Checking----->when saving f ...

  6. mono for android 学习资料

    http://www.cnblogs.com/Hua-Min/tag/Android/

  7. struts1:Struts配置文件初解

    struts-config.xml是Struts的核心文件.该文件可配置各种组件,包括,FormBeans,Actions,ActionMappings,全局转发GlobalForwards,数据源D ...

  8. I/O事件

    I/O事件 最近在研究tornado和gevent,里面涉及了非阻塞I/O.在了解非阻塞I/O之前,需要先了解I/O事件 我们知道,内核有缓冲区.假设有两个进程A,B,进程B想读进程A写入的东西(即进 ...

  9. 寻找素数对(hd1262)

    寻找素数对 点我 Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others)Total Su ...

  10. 解决同一PC同一浏览器session共享问题

    首先session是同一PC同一浏览器共享的.比如如下代码: public void doPost(HttpServletRequest request, HttpServletResponse re ...