读书人

年后写的一点代码解决思路

发布时间: 2012-01-03 22:16:06 作者: rapoo

年后写的一点代码

C# code
/// <summary>    /// 提供上传文件时所使用的方法    /// </summary>    public interface IUploadFile    {        /// <summary>        /// 验证上传文件的扩展名        /// </summary>        /// <param name="postFile">System.Web.HttpPostedFile对象</param>        /// <returns></returns>        bool CheckFileType(System.Web.HttpPostedFile postFile);        /// <summary>        /// 获取文件名称        /// 调用此方法并不创建新目录        /// </summary>        /// <param name="filePath">服务器的虚拟路径</param>        /// <param name="fileName">文件名</param>        /// <returns></returns>        string GetFileName(string filePath,string fileName);    } /// <summary>    /// 提供上传文件时所使用的方法    /// </summary>    public abstract class UploadFile    {                /// <summary>        /// 获取文件路径        /// </summary>        /// <param name="path">虚拟路径</param>        /// <returns></returns>        protected string GetDirectory(string path)        {            string directoryName = DateTime.Now.ToString("yyyyMMdd");            string filePath = Path.Combine(path, directoryName);            if (!Directory.Exists(filePath))            {                return Path.Combine(filePath, GetNumber(1));            }            return Path.Combine(filePath, GetPath(Directory.GetDirectories(filePath), filePath));        }        /// <summary>        /// 获取文件夹中的文个数件少于1000的文件夹名称        /// </summary>        /// <param name="info">目录名称</param>        /// <param name="filePath">路径</param>        /// <returns></returns>        protected string GetPath(IList<string> info, string filePath)        {            string fileName = string.Empty;            if (info == null)            {                return null;            }            if (info.Count <= 0)            {                return GetNumber(1);            }            for (int i = 0; i < info.Count; i++)            {                if (Directory.Exists(info[i]))                {                    if (Directory.GetFiles(info[i]).Length < 1000)                    {                        fileName = info[i];                        break;                    }                }            }            if (string.IsNullOrEmpty(fileName))            {                return Path.Combine(filePath, GetNumber(int.Parse(info.ToList<string>().Max(s => s.Substring(s.LastIndexOf("\\") + 1).TrimStart('0'))) + 1));            }            else            {                return fileName;            }        }        /// <summary>        /// 获取数字字符串,不足4位用0补足        /// </summary>        /// <param name="number">不大于9999的数字</param>        /// <returns></returns>        protected string GetNumber(int number)        {            if (number > 9999) return null;            return (10000 + number).ToString().Substring(1);        }                #region IUploadFile 成员        /// <summary>        /// 验证上传文件的扩展名        /// </summary>        /// <param name="postFile">System.Web.HttpPostedFile对象</param>        /// <returns></returns>        public abstract bool CheckFileType(System.Web.HttpPostedFile postFile);        /// <summary>        /// 获取文件名称        /// </summary>        /// <param name="filePath">服务器的虚拟路径</param>        /// <param name="fileName">文件名</param>        /// <returns></returns>        public virtual string GetFileName(string filePath,string fileName)        {            DateTime now = DateTime.Now;            string name = (100 + now.Hour).ToString().Substring(1) + (100 + now.Minute).ToString().Substring(1) + (100 + now.Second).ToString().Substring(1) + "_" + fileName;            return Path.Combine(GetDirectory(filePath), name);        }        #endregion    }public class LBCUploadFile:UploadFile,IUploadFile    {        /// <summary>        /// 验证上传文件的扩展名        /// </summary>        /// <param name="postFile">System.Web.HttpPostedFile对象</param>        /// <returns></returns>        public override bool CheckFileType(System.Web.HttpPostedFile postFile)        {            IList<string> fileType = new List<string>();            fileType.Add("image/gif");            fileType.Add("image/jpeg");            fileType.Add("image/png");            return fileType.Contains(postFile.ContentType);        }    } 



[解决办法]
编程习惯不错,层次结构清晰
[解决办法]
我已然看晕了....... -.-!
[解决办法]
层次比较清晰,UP
[解决办法]
UP
[解决办法]

[解决办法]
up
[解决办法]
同时比较充分的体现了面向对象的设计思想。
[解决办法]
写的挺好,要是再加上控件类就完美了。
[解决办法]
学习了!
up!
[解决办法]
谢谢分享
学习了
[解决办法]
让看者也一目了然!不错!学习!

[解决办法]
学习
[解决办法]
好东西~谢谢LZ分享
[解决办法]
赞z
[解决办法]
支持分享
[解决办法]
不错......
[解决办法]
不错不错,过年长胖了~
[解决办法]

[解决办法]
不错,很清晰
不过建议
你把
public override bool CheckFileType(System.Web.HttpPostedFile postFile)
{
IList<string> fileType = new List<string>();
fileType.Add("image/gif");
fileType.Add("image/jpeg");
fileType.Add("image/png");
return fileType.Contains(postFile.ContentType);
}
这串检测代码,另外包装一下,可以把这个IList<string> fileType公开,方便程序员在调用的时候能自己定义类型
另外如果能提供基于xml配置的定义,这样更好
[解决办法]
收藏.
[解决办法]
顶,标记下
[解决办法]
路过,觉得挺好玩的
[解决办法]
收藏
[解决办法]
打酱油
[解决办法]
up
[解决办法]
不错,学习了
[解决办法]
没明白UploadFile这个抽象类的作用.lz 能帮小弟解答一下吗
[解决办法]
mark
[解决办法]
顶一下哈
[解决办法]
不错了,层次清楚!
------解决方案--------------------


不错不错,过年长胖了~
[解决办法]
mark
[解决办法]
UP
[解决办法]
MARK
[解决办法]
编程习惯比较好
[解决办法]
学习
[解决办法]
不觉得一个方法太长了么
[解决办法]
多谢了
[解决办法]
up
[解决办法]
学习了
[解决办法]
顶~~向楼主学习!!
[解决办法]
mark.
[解决办法]
顶了!
[解决办法]
我怎么看不明白啊
[解决办法]
支持
[解决办法]
```````
[解决办法]
```````
[解决办法]
学习中
[解决办法]
up
[解决办法]
恩,很清晰


[解决办法]
学习了!
[解决办法]
收藏了
[解决办法]
学习下...
[解决办法]
这不是IOC的原型吗?
[解决办法]
ding..!
[解决办法]
呵呵,帮顶.学习中
[解决办法]
学习ing
[解决办法]
mark
[解决办法]
mark
[解决办法]
学习!up
[解决办法]
学习了
[解决办法]

[解决办法]
学习中阿。。。瓦嘎嘎
[解决办法]
顶一下
[解决办法]
收藏
[解决办法]
用不到!!!
------解决方案--------------------


还行
[解决办法]
跟我的编程风格很像
[解决办法]
学习学习。
[解决办法]
不错,收藏了
[解决办法]
学习+支持,只有这样才能腾飞!哈哈
[解决办法]
进来学习!
帮顶,让更多人看到!
[解决办法]
学习了
[解决办法]
up~
[解决办法]
学习学习
[解决办法]
过年长见识了
[解决办法]
不错,顶起来
[解决办法]
充分体现了面向女人的设计思想
[解决办法]
感谢LZ分享!!!
[解决办法]
不错...
[解决办法]
不错,很牛逼
[解决办法]
我,倒,我测了半天老是出来的路径不对!
[解决办法]
获取文件夹中的文个数件少于1000的文件夹名称那部分逻辑可以抽象出来
应用策略模式

[解决办法]
我刚学设计模式时,什么都想抽象成接口
但往往不是抽象的时机不合适就是算法提炼的不彻底,反到容易搬起石头砸自己的脚.
只有合适的才是最好的,如果真的有必要的话再用接口和抽象类
[解决办法]
没做过,友情帮顶!!!
[解决办法]
不错,学习了.
[解决办法]
收藏了
[解决办法]
做个标记
[解决办法]
不错,学习下
[解决办法]
很好!!!

读书人网 >asp.net

热点推荐