做了几天的文件操作,现在来总结一下,错误之处,还望指点!以文件为例,如果对文件夹操作,基本上将File换为Directory即可(例:FileInfo file = new FileInfo(Path);与DirectoryInfo directory = new DirectoryInfo (Path);)

1获取文件信息

在知道文件相对路径的情形,下面代码可以获取文件的详细信息

           public static void fileinfo(string Path)
{
Path = Server.MapPath(Path);//获取文件的物理路径
FileInfo file = new FileInfo(Path);//实例该路径文件信息
var length=file.Length;//文件大小,字节
var name = file.Name;//文件名
var fullname = file.FullName;//文件路径
var extension = file.Extension;//文件后缀名
......
}

获取的信息还有创建时间,最后访问时间等等,可以自行研究

2新建文件

新建一个文件

       public static void NewFile(string filePath)
{
filePath=Server.MapPath(filePath);//获取想创建文件的物理路径
if (System.IO.File.Exists(newfilepath))
{
//判断新建的文件是否已经存在
throw new Exception("文件已经存在")
} System.IO.File.Create(newfilepath);//创建
......
}

3复制文件,移动(剪切)文件,重命名文件

复制文件:

         public static void Copy(string Path,string targetPath)
{
Path = Server.MapPath(Path);//原文件的物理路径
targetPath = Server.MapPath(targetPath);//复制到的新位置物理路径
//判断到的新地址是否存在重命名文件
if (System.IO.File.Exists(targetPath))
{
throw new Exception("存在同名文件");//抛出异常
}
 System.IO.File.Copy(Path,targetPath);//复制到新位置,不允许覆盖现有文件
.......
}

移动文件,重命名:

      public static void MoveOrRename(string Path,string targetPath)
{
Path = Server.MapPath(Path);//原文件的物理路径
targetPath = Server.MapPath(targetPath);//移动到的新位置的物理路径(如果还是当前文件夹,则会重命名文件)
//判断到的新地址是否存在重命名文件
if (System.IO.File.Exists(targetPath))
{
//判断是新位置是否存在同名(判断重命名是狗和其他文件冲突)
throw new Exception("已经存在同名文件");
}
 System.IO.File.Move(Path,targetPath);//2个文件在不同目录则是移动,如果在相同目录下则是重命名
......
}

复制文件不会删除,移动或者重命名(方法相同,就是目标位置不同)会删除原文件.

 4上传文件

         [HttpPost]//通过Post请求接收前台传来的文件数据
public ActionResult UploadFile(string dirPath)
{
var filepath = Server.MapPath(Path);//获取上传的文件存入目录的物理路径
var file = Request.Files["file"];//获取文件内容
if (file == null || file.ContentLength == )
{
throw new Exception("文件不存在");//简单判断下文件
}
var newfilepath = Server.MapPath(dirPath + "\\" + file.FileName);//获取文件名的物理路径
//判断要上传的文件是否与目录中的文件重命名
if (System.IO.File.Exists(newfilepath))
{
throw new Exception("文件不存在");//简单判断下文件是否存在
}
//文件存放到指定的文件中 ;
file.SaveAs(newfilepath);
......
}

会自动创建存有该类容和命名的文件,不用多此一举去创建一个新文件再放入内容.

 5遍历当前目录和其子目录所有文件

       private static string[] GetFiles(string dir, string regexPattern = null, bool recurse = true, bool throwEx = false)
{
//recurse:是否递归
//throwEx:是否报出异常
List<string> lst = new List<string>();
try
{
foreach (string item in Directory.GetFileSystemEntries(dir))
{
try
{
bool isFile = (System.IO.File.GetAttributes(item) & FileAttributes.Directory) != FileAttributes.Directory; if (isFile && (regexPattern == null || Regex.IsMatch(Path.GetFileName(item), regexPattern, RegexOptions.IgnoreCase | RegexOptions.Multiline)))
{ lst.Add(item); } //递归
if (recurse && !isFile) { lst.AddRange(GetFiles(item, regexPattern, true)); }
}
catch { if (throwEx) { throw; } }
}
}
catch { if (throwEx) { throw; } } return lst.ToArray();
}

这个不多说,网上找到的代码,亲测有效.

ASP.NET中的文件操作(文件信息,新建,移动,复制,重命名,上传,遍历)(亲测详细)的更多相关文章

  1. ASP.NET中上传图片检测其是否为真实的图片 防范病毒上传至服务器

    一.需求 我们在用.net开发网站时,经常会用到图片上传,可以说是每个网站必备的,大到门户网站,电商网站,政务系统,OA系统,小到企业网站,个人网站,博客网站,导航网站等等,都有用到图片上传,那么在客 ...

  2. Drupal8重命名上传的中文名文件

    完整的模块代码文件在Coding.net上,想直接使用的请前往下载:https://coding.net/u/yamus/p/chinese_rename/git/tree/master 最近吧Dru ...

  3. PHP中DirectIO直操作文件扩展的使用

    关于 PHP 的文件操作,我们也将是通过一系列的文章来进行学习.今天我们先学习的是一个很少人使用过,甚至很多人根本不知道的扩展,它与我们日常的文件操作有些许的不同.不过这些差别并不是我们肉眼所能直观看 ...

  4. 【转】asp.net(c#)使用HttpWebRequest附加携带请求参数以post方式模拟上传大文件(以图片为例)到Web服务器端

    原文地址:http://docode.top/Article/Detail/10002 目录: 1.Http协议上传文件(以图片为例)请求报文体内容格式 2.完整版HttpWebRequest模拟上传 ...

  5. 在 github 中新建仓库后,如何上传文件到这个仓库里面。

    在 github 中新建仓库后,如何上传文件到这个仓库里面. libin@hglibin MINGW64 /e/github.io (master) $ git remote libin@hglibi ...

  6. Java中使用HttpPost上传文件以及HttpGet进行API请求(包含HttpPost上传文件)

    Java中使用HttpPost上传文件以及HttpGet进行API请求(包含HttpPost上传文件) 一.HttpPost上传文件 public static String getSuffix(fi ...

  7. FtpClient上传文件速度非常慢,而且大小为0,上传失败

    问题发生: 环境:VSFTP+FTPClient+Client 使用FTPClient上传文件的时候总是卡住,而且文件大小为0,上传失败, 解决方案: 添加代码:调用FTPClient的enterLo ...

  8. ASP.NET中App_Code,App_Data等文件夹的作用

    http://www.cnblogs.com/shiyu007/archive/2007/12/04/982264.html 1.  Bin文件夹 Bin文件夹包含应用程序所需的,用于控件.组件或者需 ...

  9. delphi 文件操作(信息获取)

    delphi获取Exe文件版本信息的函数 Type TFileVersionInfo = Record FixedInfo:TVSFixedFileInfo; {版本信息} CompanyName:S ...

随机推荐

  1. Java提高篇——单例模式

    介绍 在我们日常的工作中经常需要在应用程序中保持一个唯一的实例,如:IO处理,数据库操作等,由于这些对象都要占用重要的系统资源,所以我们必须限制这些实例的创建或始终使用一个公用的实例,这就是我们今天要 ...

  2. 可爱的Python_课后习题_CDay−2 完成核心功能

    1. 在前文的grep 实现例子中,没有考虑子目录的处理方式,因为如果直接open 目录进行读grep 是古老实用且高效的模式文本匹配工具,在所有的Unix/Linux 系统中都会默认安装,它最常做的 ...

  3. 使用Vue构建中(大)型应用

    init 首先要起一个项目,推荐用vue-cli安装 $ npm install -g vue-cli $ vue init webpack demo $ cd demo $ npm install ...

  4. Java被忽略的基本知识(二)

    14.字符串的内容不可改变,不能修改某个下标的字符值.字符串之间的"+"连接是通过"断开--再连接",修改变量的栈中的引用地址指向. 15.对于数组.类(类的属 ...

  5. swift基础:第三部分:对第一部分的补充说明

    今天是我学习swift的第二天,虽然我和swift的距离有点远,但我相信,我会慢慢的接近这门语言的.好了,我们聊聊昨天晚上的事吧,昨天晚上下班早,回到家时,真是惊喜哈,宿舍那两做好了饭,等我吃饭,想对 ...

  6. 代码review之 isInfoEnable()

    上周没事扫扫系统原来的代码,突然发现这样一段代码: if(log.isInfoEnable()) { log.info("ID"+userID+"pwd"+us ...

  7. Node.js Express 框架 GET方法

    GET 方法 以下实例演示了在表单中通过 GET 方法提交两个参数,我们可以使用 server.js 文件内的 process_get 路由器来处理输入: index.htm 文件代码如下: < ...

  8. 转载 wpf使用经验

    转载自 胡庆访[ http://zgynhqf.cnblogs.com/ ] WPF 是一个界面层框架技术,要对 WPF 技术达到熟练运用的程度,需要同时拥有开发和设计两方面的知识.而我作为一名开发人 ...

  9. 前端开发--面试题整理(JS篇)

    1.截取字符串abcdace的acealert('abcdace'.substring(4)); 2.规避javascript多人开发函数重名问题命名空间封闭空间js模块化mvc(数据层.表现层.控制 ...

  10. String空值判定

    不能用 str.equalsIgnoreCase(null). 写了个判定的方法,供以后直接调用: public static boolean isEmpty(String str) { if (st ...