1.File类和FileStream文件流
类别 | 解释 | 区别 |
File类 | 静态类,支持对文件的基本操作,包括创建,拷贝,移动,删除和打开一个文件。File类方法的参量很多时候都是路径Path。主要提供有关文件各种操作,在使用时需要引用System.IO命名空间 | 是一个文件的类,对文件进行操作;File是笔记本 |
FileStream文件流 | 只能处理原始字节(raw byte) FileStream类可以用于任何数据文件,而不仅仅是文本文件。FileStream对象可以用于读取诸如图像和声音的文件,FileStream读取出来的字节数组,然后通过编码转换将字节数组转换成字符串 | FileStream文件流,对txt.xml等文件写入内容的时候需要使用的一个工具;FileStream是笔 |
2.File写入文件的方式
FileStream.Write | String filepath=Direction.GetCurrentDirectory()+"\\"+Process.GetCurrentProcess().ProcessName+".txt"; If(File.Exists(filepath)) File.Delete(filepath);
FileStream fs = new FileStream(filePath, FileMode.Create); string highWidth = string.Format("\nW: {0}, H: {1}", this.Width.ToString(), this.Height.ToString()); |
File.WriteAllLines
| //如果文件不存在,则创建;存在则覆盖 |
File.WriteAllText
| 28 //如果文件不存在,则创建;存在则覆盖 |
StreamWriter.Write
| 34 //在将文本写入文件前,处理文本行 |
文件操作大全 using System.IO
文件夹 |
| 文件 |
|
创建 | Directory.CreateDirectory(); | 创建 | File.Create(); |
删除 |
| 删除 | File.Delete(); |
删除一个目录下所有的文件夹 | foreach (string dirStr in Directory.GetDirectories(%%1)) |
|
|
清空文件夹 | Directory.Delete(%%1,true); | 读取文件 | StreamReader s = File.OpenText(%%1); |
|
| 写入文件 | FileInfo f = new FileInfo(%%1); |
|
| 写入随机文件 | byte[] dataArray = new byte[100000];//new Random().NextBytes(dataArray); |
|
| 读取文件属性 | FileInfo f = new FileInfo(%%1);//f.CreationTime,f.FullName |
|
| 写入属性 | FileInfo f = new FileInfo(%%1); |
枚举一个文件夹中所有文件夹(递归) | foreach (string %%2 in Directory.GetDirectories(%%1)){ |
|
|
复制文件夹 | string path = (%%2.LastIndexOf("\") == %%2.Length - 1) ? %%2 : %%2+"\"; |
|
|
复制目录下所有的文件夹到另一个文件夹下
| DirectoryInfo d = new DirectoryInfo(%%1); |
|
|
移动文件夹 | string filename = Path.GetFileName(%%1);
|
|
|
移动目录下所有的文件夹到另一个目录下
| DirectoryInfo d = new DirectoryInfo(%%1); |
|
|
以一个文件夹的框架在另一个目录创建文件夹和空文件
| bool b=false; |
|
|
|
| 复制文件 | File.Copy(%%1,%%2);
|
|
| 复制一个文件夹下所有的文件到另一个目录 | foreach (string fileStr in Directory.GetFiles(%%1))
|
提取扩展名 | string %%2=Path.GetExtension(%%1); | 提取文件名 | string %%2=Path.GetFileName(%%1);
|
替换扩展名 | File.ChangeExtension(%%1,%%2); | 提取文件路径 | string %%2=Path.GetDirectoryName(%%1);
|
|
|
|
|
|
|
|
|
上传文件:
ajax接口
//上传文件,以视频为例
upload.render({
elem: '#btnVideo',
url: 'Upload',
data: { "type": "media" },
accept: 'video', //视频
acceptMime: 'video/*',
before: function () {
index = layer.load();
},
done: function (res) {
layer.close(index);
//do something()
}
});
接口:
public JsonResult UploadVideo()
{
string rename = Request["name"];
var result = new Dictionary<string, object>();
result["code"] = -1;
Dictionary<string, object> data = new Dictionary<string, object>();
string fileName = string.Empty;
try
{
string t = Request["t"];//类型,img,表示图片类的,file表示文件类
string selfPath = Request["p"];//自定义文件夹名称
var file = Request.Files[0]; //获取选中文件
Stream stream = file.InputStream; //将文件转为流
string ext = file.FileName.Substring(file.FileName.LastIndexOf('.'));
int size = file.ContentLength/1024;
if (size > 102400)
{
result["code"] = -1;
result["msg"] = "视频大于100M,请重新选择";
}
else {
//文件保存位置及命名,精确到毫秒并附带一组随机数,防止文件重名,数据库保存路径为此变量
string dir = "/Upload/Temporary/";
string rootPath = Server.MapPath(dir);
if (!Directory.Exists(rootPath))
Directory.CreateDirectory(rootPath);
Random ran = new Random((int)DateTime.Now.Ticks);//利用时间种子解决伪随机数短时间重复问题
if (string.IsNullOrWhiteSpace(rename))
{
fileName = DateTime.Now.ToString("mmssms") + ran.Next(99999);
}
else
{
fileName = rename;
}
string serverPath = dir + fileName + ext;
//路径映射为绝对路径
string path = Server.MapPath(serverPath);
if (t == "img")
{
System.Drawing.Image img = System.Drawing.Image.FromStream(stream);//将流中的图片转换为Image图片对象
img.Save(path, System.Drawing.Imaging.ImageFormat.Jpeg);//图片保存,JPEG格式图片较小
result["data"] = serverPath;
result["code"] = 0;
}
else
{
file.SaveAs(path);
System.IO.FileInfo fileInfo = new System.IO.FileInfo(path);
data.Add("src", serverPath);
data.Add("title", fileName);
data.Add("ImgSeal", imgpath);
result["data"] = data;
result["code"] = 0;
}
}
}
catch (Exception ex)
{
result["code"] = -1;
LogerHelper.Error(ex);
}
return Json(result, JsonRequestBehavior.AllowGet);
}
参考博客
https://www.cnblogs.com/zengxh/p/12390516.html
https://blog.csdn.net/qq_41209575/article/details/89178020