文件或图片删除

 ** <summary>
    /// 删除文件文件或图片
    /// </summary>
    /// <param name="path">当前文件的路径</param>
    /// <returns>是否删除成功</returns>
    public static bool FilePicDelete(string path)
    {
        bool ret = false;
        System.IO.FileInfo file = new System.IO.FileInfo(path);
        if (file.Exists)
        {
            file.Delete();
            ret = true;
        }
        return ret;
    }

 

using System;
using System.Data;
using System.Configuration;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
using System.Data.OleDb;
using System.IO;

namespace kkun
{
    public abstract class basic
    {
        public basic()
        {
            //
            // TODO: 在此处添加构造函数逻辑
            //基类
        }

        //属性
        private int oid;
        private string o上传图像;
        private string o简介;
        private string o联系人;
        private string o联系方式;
      
        public int id
        {
            get { return this.oid; }
            set {this.oid=value;}
        }

        public string 上传图像
        {
            get { return this.o上传图像; }
            set { this.o上传图像 = value; }
        }

        public string 简介
        {
            get { return this.o简介; }
            set { this.o简介 = value; }
        }

        public string 联系人
        {
            get { return this.o联系人; }
            set { this.o联系人 = value; }
        }

        public string 联系方式
        {
            get { return this.o联系方式; }
            set { this.o联系方式 = value; }
        }

        public int Remove()
        {
            return 0;
        }

        public string oFile(FileUpload f,RegularExpressionValidator r)
        {
          
                //获取文件类型
                string oFileName = f.FileName.ToLower();
                oFileName = oFileName.Substring(oFileName.Length - 3, 3);

                /*
                 * 如果客户端指定了字面值正确但实际不存在的文件的话,将会上传一个空文件,即字节为0的同类型文件
                 * 暂时没有找到解决此问题的办法,
                 * 下面的方法只是解决了服务器端是否存在该文件,并不能验证客户端,
                 * 备注一下
                 * kkun于2007-2-6
                 *
                //判断文件大小
                if (f.PostedFile.ContentLength == 0 || f.PostedFile.ContentLength >= 5000)
                {
                    r.ErrorMessage = "指定的文件大小不符合要求!您当前选择的文件大小为:"+f.PostedFile.ContentLength.ToString();
                    r.IsValid = false;
                    return null;
                }
                */

                //判断文件类型是否受支持
                if (oFileName != "jpg" || oFileName != "jpeg" || oFileName != "gif" || oFileName != "png" || oFileName != "bmp")
                {
                    r.ErrorMessage = "您上传的文件类型不受支持!";
                    r.IsValid = false;
                    //return null;
                    //找到原因了,就是上边这行代码!返回了null,
                }

                //生成随机数
                Random oRandom = new Random();
                string oStringRandom = oRandom.Next(9999).ToString();

                //格式化日期作为文件名
                DateTime oDateTime = new DateTime();
                oDateTime = DateTime.Now;
                string oStringTime = oDateTime.ToString();
                oStringTime = oStringTime.Replace("-", null);
                oStringTime = oStringTime.Replace(" ", null);
                oStringTime = oStringTime.Replace(":", null);

                //组合成文件名
                string oFile = oStringTime + oStringRandom + "." + oFileName;

                //如果指定目录不存在,将建立新的文件夹
                string oSavePath = HttpContext.Current.Server.MapPath("~") + "//oFile//";
                if (!Directory.Exists(oSavePath))
                {
                    Directory.CreateDirectory(oSavePath);
                }

                //保存路径+完整文件名
                oSavePath += oFile;
                try
                {
                    f.SaveAs(oSavePath);
                    return oFile;
                }
                catch (Exception exception)
                {
                    throw exception;
                }
                finally
                {
                    //
                }
              
            }
      



    }
}

 

 

.NET中的 Image.FromFile 方法会锁住文件的解决方法

.NET中的 Image.FromFile  一旦使用后,对应的文件在一直调用 其生成的Image对象被Disponse前都不会被解除锁定,这就造成了一个问题,就是在这个图形被解锁前无法对图像进行操作(比如删除,修改等操作).

在以前用的过程中曾用过下面三个方法解决问题.

 

第一种方法,在要进行文件操作前将Image对象销毁.
PictureBox picbox;
if(picbox.Image!=null)picbox.Image.Disponse();

第二种方法,就是在加载图像的时候用一种方法替代:

System.Drawing.Image img = System.Drawing.Image.FromFile(filepath);
System.Drawing.Image bmp = new System.Drawing.Bitmap(img.Width, img.Height, System.Drawing.Imaging.PixelFormat.Format32bppArgb);
System.Drawing.Graphics g = System.Drawing.Graphics.FromImage(bmp);
g.DrawImage(img, 0, 0);
g.Flush();
g.Dispose();
img.Dispose();

//下面开始使用bmp作为显示的Image对象

一直以来用的是上面的第二种方法.今天实验出来突然有种方法更加简单:

System.Drawing.Image img = System.Drawing.Image.FromFile(filepath);
System.Drawing.Image bmp = new System.Drawing.Bitmap(img);
img.Dispose();
//下面开始使用bmp作为显示的Image对象

呃.就这样了.

 

 

ASP.NET设计网络硬盘之删除文件夹

 

对于不再需要的文件/文件夹用户有权限做删除处理。这一节就介绍如何实现这一功能。

界面布置

主界面设计中有个“删除”按钮,其(ID)为btnDelete。用户在目录浏览中选中要删除的项后,单击该按钮就可以完成删除工作。

代码实现

在“设计”面板中双击“删除”按钮,为其添加事件处理程序如下:

privatevoidBtnDelete_Click(objectsender,System.EventArgse)
{
 DeleteThings(FileList.SelectedItem.Text);
}

privatevoidDeleteThings(stringFullPath)
{
 if(FullPath.IndexOf(".")&gt;0)//删除文件
 {
File.Delete(FullPath);
LoadDir(CurrentPath);//重新载入当前目录
 }
 else//删除目录
 {
Directory.Delete(FullPath);
LoadDir(CurrentPath);//重新载入当前目录
 }
}

删除时首先判断选中的是文件还是文件夹。如果是文件,则调用File.Delete()方法;反之则调用Directory.Delete()方法。删除成功后再调用LoadDir()方法显示更改后的目录内容。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值