获得指定目录下文件的名字(防止重名) == 比如返回:开发计划[1].txt - FileUploadToOnlyFileName

2017-05-05 15:25:41  访问(1316) 赞(0) 踩(0)


        /// <summary>
        /// 获得指定目录下文件的名字(防止重名) == 比如返回:开发计划[1].txt - FileUploadToOnlyFileName
        /// </summary>
        /// <param name="dirName">目录名</param>
        /// <param name="fileName">文件名无后缀,比如:开发计划</param>
        /// <param name="fileExt">文件后缀,比如:.txt</param>
        /// <param name="preName">文件加上序号后的前缀标识,如:[</param>
        /// <param name="postName">文件加上序号后的前缀标识,如:]</param>
        /// <returns>比如:开发计划.txt 或 开发计划[1].txt</returns>
        public string FileUploadToOnlyFileName
            (
                string dirName,
                string fileName,
                string fileExt,
                string preName,
                string postName
            )
        {
            if (fileName == null || fileName.Length == 0)
            {
                throw new Exception
                    (
                        "方法:"
                        + MethodBase.GetCurrentMethod().ReflectedType.FullName
                        + " "
                        + MethodBase.GetCurrentMethod().ToString()
                        + " 发生异常:"
                        + "传入的字符串参数:"
                        + "fileName"
                        + "为null或trim后为空。"
                    );
            }

            if (dirName == null || dirName.Length == 0)
            {
                throw new Exception
                    (
                        "方法:"
                        + MethodBase.GetCurrentMethod().ReflectedType.FullName
                        + " "
                        + MethodBase.GetCurrentMethod().ToString()
                        + " 发生异常:"
                        + "传入的字符串参数:"
                        + "dirName"
                        + "为null或trim后为空。"
                    );
            }

            dirName = dirName.Trim();

            if (dirName.Length == 0)
            {
                throw new Exception
                    (
                        "方法:"
                        + MethodBase.GetCurrentMethod().ReflectedType.FullName
                        + " "
                        + MethodBase.GetCurrentMethod().ToString()
                        + " 发生异常:"
                        + "传入的字符串参数:"
                        + "dirName"
                        + "为null或trim后为空。"
                    );
            }

            // 判断和移除/或\\
            if (dirName.EndsWith("/") || dirName.EndsWith("\\"))
            {
                dirName = dirName.Substring(0, dirName.Length - 1);
            }

            if (dirName.Length == 0)
            {
                throw new Exception
                    (
                        "方法:"
                        + MethodBase.GetCurrentMethod().ReflectedType.FullName
                        + " "
                        + MethodBase.GetCurrentMethod().ToString()
                        + " 发生异常:"
                        + "传入的字符串参数:"
                        + "dirName"
                        + "为null或trim后为空。"
                    );
            }

            if (!Directory.Exists(dirName))
            {
                return fileName + fileExt;
            }

            string saveFileName = fileName + fileExt;
            string fullFileName = dirName + "\\" + saveFileName;

            if (!File.Exists(fullFileName))
            {
                return saveFileName;
            }


            for (int i = 0; i < 99999; ++i)
            {
                saveFileName = fileName + preName + i.ToString() + postName + fileExt;
                fullFileName = dirName + "\\" + saveFileName;

                if (!File.Exists(fullFileName))
                {
                    return saveFileName;
                }
            }

            throw new Exception
                (
                    "方法:"
                    + MethodBase.GetCurrentMethod().ReflectedType.FullName
                    + " "
                    + MethodBase.GetCurrentMethod().ToString()
                    + " 发生异常:"
                    + "传入的字符串参数:"
                    + "dirName = (" + dirName + ")"
                    + "目录下文件过多"
                );
        }


标签:获得指定目录下文件的名字(防止重名) == 比如返回:开发计划[1].txt - FileUploadToOnlyFileName 

上一条:

下一条:


 

相关评论

评论加载中……
 

发表评论

类型:
内容:
  (Alt+Enter)