需求:一个网站有用户头像图片上传的功能,时间久了,用户多了,上传的图片也就多了,会占用网站空间。网站空间又有限,怎么实现在后台删除这些老久的、没用的图片呢?说明:不是数据库中的数据,是文件哦望大大侠给个代码、思路吧!

解决方案 »

  1.   

    直接删除那个文件夹System.IO.Directory.Delete
      

  2.   

    public void DeleteFolder(string dir)   
    6.{   
    7.    if (Directory.Exists(dir)) //如果存在这个文件夹删除之    
    8.    {   
    9.        foreach (string d in Directory.GetFileSystemEntries(dir))   
    10.        {   
    11.            if (File.Exists(d))   
    12.                File.Delete(d); //直接删除其中的文件                           
    13.            else  
    14.                DeleteFolder(d); //递归删除子文件夹    
    15.        }   
    16.        Directory.Delete(dir, true); //删除已空文件夹                    
    17.    }   
    18.}  判断File.GetLastAccessTime()来判断删除
      

  3.   

    文件后台管理。如文件名,用户,上传时间
    if(File.Exists(""))
     File.Delete("");
      

  4.   


    string sourceDir = @"c:\current";try
    {
        string[] picList = Directory.GetFiles(sourceDir, "*.jpg");
        
        foreach (string f in picList)
        {
            File.Delete(f);
        }
    }catch 
    {
      
    }
      

  5.   

    public void DeleteFolder(string dir)   
    6.{   
    7. if (Directory.Exists(dir)) //如果存在这个文件夹删除之   
    8. {   
    9. foreach (string d in Directory.GetFileSystemEntries(dir))   
    10. {   
    11. if (File.Exists(d))   
    12. File.Delete(d); //直接删除其中的文件   
    13. else   
    14. DeleteFolder(d); //递归删除子文件夹   
    15. }   
    16. Directory.Delete(dir, true); //删除已空文件夹   
    17. }   
    18.}   
      

  6.   

    RemoveFilesBeforeTime(sFileSavePath, DateTime.Now.AddDays(-1.0));
    数字可以自己根据需要填
    //===========删除指定目录下N天以前的文件===============
    public static void RemoveFilesBeforeTime(string sDirectoryName, DateTime dtBeforeTime)
            {
                if (!Directory.Exists(sDirectoryName))
                    return;            //============ 1. 列举目录中的所有文件 ===============
                string[] arrFiles = Directory.GetFiles(sDirectoryName);            //========== 2. 处理每一个文件 ===========
                for (int i = 0; i < arrFiles.Length; i++)
                {
                    string sFileName = arrFiles[i];
                    DateTime dtLastWriteTime = File.GetLastWriteTime(sFileName);
                    if (dtLastWriteTime < dtBeforeTime)
                        File.Delete(sFileName);
                }
            }