.Net Core 项目的文件上传、移动、删除

556 阅读1分钟

一、文件上传

//写上传文件的接口,通过FileStream流上传
[HttpPost]
    public object UploadFile(IFormFile file)
    {
        string path = "E:\\NET\\" + file.FileName;
        using (FileStream fs = new FileStream(path, FileMode.OpenOrCreate, FileAccess.ReadWrite))
        {
            file.CopyTo(fs);
        }
        return Ok();
    }

//执行完此方法就会上传成功,不过此方法也有缺陷,只能上传30MB以下的文件

二、文件移动

// 两个参数
// 1、srcPath  : 代表旧路径 (文件原始路径)
// 2、destPath : 代表新路径 (文件需要移动到的新的位置路径)
    public static void CopyDirectory(string srcPath, string destPath)
    {
        try
        {
            DirectoryInfo dir = new DirectoryInfo(srcPath);
            FileSystemInfo[] fileinfo = dir.GetFileSystemInfos();  //获取目录下(不包含子目录)的文件和子目录
            foreach (FileSystemInfo i in fileinfo)
            {
                if (i is DirectoryInfo)     //判断是否文件夹
                {
                    if (!Directory.Exists(destPath + "\\" + i.Name))
                    {
                        Directory.CreateDirectory(destPath + "\\" + i.Name);   //目标目录下不存在此文件夹即创建子文件夹
                    }
                    CopyDirectory(i.FullName, destPath + "\\" + i.Name);    //递归调用复制子文件夹
                }
                else
                {
                    File.Copy(i.FullName, destPath + "\\" + i.Name, true);      //不是文件夹即复制文件,true表示可以覆盖同名文件
                }
            }
        }
        catch (Exception e)
        {
            Console.WriteLine(e.Message);
        }
    }
   //方法执行完毕,文件也就移动成功了
   

三、文件删除

    public static void RemoveFile(string path)
    {
        if (Directory.Exists(path))  //如果有这个文件夹了 则进行删除
        {
            GC.Collect();
            GC.WaitForPendingFinalizers();
            Directory.Delete(path, true);
        }
    }
    

方法执行完毕,文件也就删除没了