CodeSmith模板引擎系列二--文件目录树

简介:

   今天网上Google了一下,关于CodeSmith的资料已经很全了,其中有TerryLee 和努力学习的小熊 两位大牛的很详尽,所以我也不准备把CodeSmith讲的很细致了,如果是新手学习者可以参考上面两位大牛的CodeSmith文章,CodeSmith的语法与ASP语法接近,语言可以选择我们的c#,所以学习起来很轻松。今天就写一个简单的文件目录树结构的递归模板。

Template Code:

 

复制代码
代码
<% @ CodeTemplate Language = " C# "  TargetLanguage = " Text "  Src = ""  Inherits = ""  Debug = " False "  
   Description
= " Template description here. "   %>
<% @ Assembly Name = " System.Data "   %>
<% @ Import Namespace = " System.Data "   %>
<% @ Assembly Name = " System "   %>
<% @ Import Namespace = " System.IO "   %>  

-----------------------------------------------------------------
 
--  Date Created:  <%=  DateTime.Now.ToLongDateString()  %>
 
--  Createdy:   B Generated by Wolf
 
-----------------------------------------------------------------
 
< script runat = " template " >
        
private   string  path;
        [Editor(
typeof (System.Windows.Forms.Design.FolderNameEditor),

         
typeof (System.Drawing.Design.UITypeEditor))] 
        
public   string  Path
        {
            
get { return   this .path;}    
            
set { this .path = value;}
        }
        
public   void  GetFolderString( string  fload, string  indexStr)
        {
            
if ( string .IsNullOrEmpty(fload))
                
throw   new  System.ArgumentNullException( " fload " );
            Response.WriteLine(indexStr
+ fload);
            indexStr
+= " ---- " ;            
            
if (System.IO.Directory.Exists(fload))
            {
                
string [] childfolder =  System.IO.Directory.GetDirectories(fload);
                
string [] childfile =  System.IO.Directory.GetFiles(fload);
                
foreach ( string  item  in  childfolder)
                {
                    
this .GetFolderString(item,indexStr);
                }
                
foreach ( string  item  in  childfile)
                {
                    
this .GetFolderString(item,indexStr);
                }
            }
        }
        
public   void  Start()
        {
            
this .GetFolderString( this .path, "" );
        }
</ script >
<%   this .Start();  %>
复制代码

 

 

模板生成代码比较简单,就不在这里多讲述了,只是拿来展示一下CodeSmith模板对于生成基于Ascii语言文件的强大威力:

image

内容比较少今天就到这里。


本文转自破狼博客园博客,原文链接:http://www.cnblogs.com/whitewolf/archive/2010/07/14/1777088.html,如需转载请自行联系原作者



目录
相关文章
|
小程序 搜索推荐 JavaScript
微信小程序使用Vant
微信小程序使用Vant
555 2
|
Java API 开发工具
如何将python应用编译到android运行
【6月更文挑战第27天】本文介绍在Ubuntu 20上搭建Android开发环境,包括安装JRE/JDK,设置环境变量,添加i386架构,安装依赖和编译工具。并通过`p4a`命令行工具进行apk构建和清理。
562 6
如何将python应用编译到android运行
|
前端开发 JavaScript 开发者
useEffect 钩子详解与实战
【10月更文挑战第3天】React 作为一个流行的 JavaScript 库,通过 Hooks 大幅简化了组件开发。`useEffect` 是一个核心 Hook,用于处理函数组件中的副作用操作,如数据获取和 DOM 更改。本文详细介绍了 `useEffect` 的基本语法、常见用法及示例,包括模拟 `componentDidMount`、`componentDidUpdate` 和 `componentWillUnmount`。此外,还探讨了如何避免无限循环渲染和内存泄漏等问题,并提供了相应的解决方案,帮助开发者更好地理解和应用 `useEffect`,提升应用程序的性能与稳定性。
270 7
|
运维 监控 物联网
物联网卡:如何选择物联网卡流量套餐
选择物联网卡(IoT SIM卡)的流量套餐时,需要根据设备的具体使用场景、数据需求量、成本预算以及长期扩展性等多方面因素进行综合考虑。以下是一些建议步骤,帮助你做出合适的选择:
|
存储 算法 大数据
【大数据】亿级数据中判断一个数是否存在
【大数据】亿级数据中判断一个数是否存在
390 0
【大数据】亿级数据中判断一个数是否存在
|
机器学习/深度学习 人工智能 JavaScript
探索后端开发的未来趋势
本文将带您一起探讨后端开发的未来发展。我们将从当前流行的技术框架出发,分析其发展趋势,并预测可能出现的新技术。同时,我们还将讨论如何提升后端开发的效率和质量,以及如何应对未来可能出现的挑战。
|
网络安全 安全 数据安全/隐私保护
网站认证的类型有哪些?
【6月更文挑战第2天】网站认证的类型有哪些?
318 0
|
JavaScript Java 测试技术
基于小程序的社区超市管理系统+springboot+vue.js附带文章和源代码设计说明文档ppt
基于小程序的社区超市管理系统+springboot+vue.js附带文章和源代码设计说明文档ppt
197 0
海龟交易策略系统讲解 | 《海龟交易系统开发定制部署》
海龟交易系统相对而言是一个比较早的交易系统了,也是世界著名的机械交易系统,对于想学习程序化系统交易的投资者来说是一个很好的入门学习材料。 一套完整的机械的交易系统都有明确并且唯一的交易信号,例如两条均线就构成了一个交易系统,只不过它更好的说是属于技术指标的范畴。而完整的交易系统所持头寸(仓位)调整和风险控制是交易系统的核心,而海龟交易系统就是这样一套交易系统。
|
传感器 监控 自动驾驶
解锁汽车自动驾驶的密码:L0到L5六个等级全解析
随着智能网联汽车技术的快速发展,自动驾驶已成为汽车产业发展的重要方向。根据国际公认的标准,汽车自动驾驶可分为六个等级:L0级到L5级,等级越高意味着自动化程度越高。那么这六个等级具体有何区别呢?本文将详细介绍汽车自动驾驶的六个等级标准。
854 0