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,如需转载请自行联系原作者



目录
相关文章
|
存储 算法 大数据
【大数据】亿级数据中判断一个数是否存在
【大数据】亿级数据中判断一个数是否存在
370 0
【大数据】亿级数据中判断一个数是否存在
|
JavaScript Java 测试技术
基于小程序的社区超市管理系统+springboot+vue.js附带文章和源代码设计说明文档ppt
基于小程序的社区超市管理系统+springboot+vue.js附带文章和源代码设计说明文档ppt
162 0
|
机器学习/深度学习 人工智能 监控
人工智能在金融风险管理中的应用
人工智能在金融风险管理中的应用已经取得了显著的进展,并在提高风险管理效率和准确性方面发挥了重要作用。通过信用评估、欺诈检测、投资组合管理等应用,人工智能为金融行业带来了新的机遇和挑战。然而,我们也要认识到人工智能在风险管理中可能面临的隐私、解释性和偏差等问题。未来,随着技术的发展,人工智能将在金融领域持续发挥重要作用,为金融行业创造更加安全和稳健的环境。
1367 1
|
数据库 数据安全/隐私保护 Python
django数据库迁移和创建超级管理员
django数据库迁移和创建超级管理员
250 0
|
Android开发 iOS开发 开发者
uniapp开发ios应用证书获取方法和安装教程
ios应用无法像安卓应用那样直接从自己的服务器下载app安装而无需进行额外的设置,ios的安装要相对复杂一些。 ios的安装,是根据苹果开发者账号类型,根据证书和证书profile文件的不同,安装方法都有所不同的。主要是下面三种安装方法
689 0
|
传感器 监控 自动驾驶
解锁汽车自动驾驶的密码:L0到L5六个等级全解析
随着智能网联汽车技术的快速发展,自动驾驶已成为汽车产业发展的重要方向。根据国际公认的标准,汽车自动驾驶可分为六个等级:L0级到L5级,等级越高意味着自动化程度越高。那么这六个等级具体有何区别呢?本文将详细介绍汽车自动驾驶的六个等级标准。
820 0
测试HTTP代理对目标服务器的访问结果,好用的HTTP代理厂商推荐
今天,就来说说要如何利用Proxifier测试HTTP代理测试对目标服务器的访问结果。
|
机器学习/深度学习 算法 语音技术
Tacotron2、GST、Glow-TTS、Flow-TTS…你都掌握了吗?一文总结语音合成必备经典模型(三)
Tacotron2、GST、Glow-TTS、Flow-TTS…你都掌握了吗?一文总结语音合成必备经典模型
1250 0
|
传感器 编解码 物联网
HaaS EDU K1硬件介绍
HaaS EDU K1是HaaS Education Kit1的缩写,是基于四核高性能MCU-HaaS1000芯片打造的、集颜值和内涵于一身的物联网教育开发板。作为云端钉一体全链路解决方案的软硬件积木平台,深度集成了AliOS Things物联网操作系统、HaaS轻应用、小程序和阿里云物联网平台等技术和服务,让开发者可以轻松的学习和开发云端钉全链路实战项目,解决实际场景或孵化创新应用. 原文链接:https://blog.csdn.
HaaS EDU K1硬件介绍