示例#1
0
        protected virtual String BuildFileSystemPath(String standardPath)
        {
            String path            = standardPath;
            String omitPathPackage = DBFluteConfig.GetInstance().OmitFileSystemPathPackage;

            if (omitPathPackage != null && omitPathPackage.Trim().Length > 0 && path.StartsWith(omitPathPackage))
            {
                path = path.Substring(omitPathPackage.Length + ".".Length); // Remove omit package.
            }
            else
            {
                path = path.Substring(path.IndexOf(".") + ".".Length); // Remove project package.
            }
            String fileSeparator = "/";
            String flatDirectory = DBFluteConfig.GetInstance().FlatDirectoryPackage;

            if (flatDirectory != null && flatDirectory.Trim().Length > 0 && path.Contains(flatDirectory))
            {
                String front = path.Substring(0, path.IndexOf(flatDirectory));
                String rear  = path.Substring(path.IndexOf(flatDirectory) + flatDirectory.Length);
                front = front.Replace(".", fileSeparator);
                rear  = rear.Replace(".", fileSeparator);
                path  = front + flatDirectory + rear;
            }
            else
            {
                path = path.Replace(".", fileSeparator);
            }
            if (path.EndsWith(fileSeparator + "sql"))
            {
                path = path.Replace(fileSeparator + "sql", ".sql");
            }
            FileSystemPath resolver = DBFluteConfig.GetInstance().FileSystemPathResolver;

            if (resolver != null)
            {
                return(resolver.Invoke(path, standardPath, this));
            }
            return(path);
        }