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

简介:

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

Template Code:

 
  1. 代码   
  2. <%@ CodeTemplate Language="C#" TargetLanguage="Text" Src="" Inherits="" Debug="False"   
  3.    Description="Template description here." %>  
  4. <%@ Assembly Name="System.Data" %>  
  5. <%@ Import Namespace="System.Data" %>  
  6. <%@ Assembly Name="System" %>  
  7. <%@ Import Namespace="System.IO" %>   
  8.  
  9. -----------------------------------------------------------------  
  10.  -- Date Created: <%= DateTime.Now.ToLongDateString() %>  
  11.  -- Createdy:   B Generated by Wolf  
  12.  -----------------------------------------------------------------  
  13.  <script runat="template">  
  14.         private string path;  
  15.         [Editor(typeof(System.Windows.Forms.Design.FolderNameEditor),  
  16.  
  17.          typeof(System.Drawing.Design.UITypeEditor))]   
  18.         public string Path  
  19.         {  
  20.             get{return this.path;}      
  21.             set{this.path=value;}  
  22.         }  
  23.         public void GetFolderString(string fload,string indexStr)  
  24.         {  
  25.             if(string.IsNullOrEmpty(fload))  
  26.                 throw new System.ArgumentNullException("fload");  
  27.             Response.WriteLine(indexStr+fload);  
  28.             indexStr+="----";              
  29.             if(System.IO.Directory.Exists(fload))  
  30.             {  
  31.                 string[] childfolder= System.IO.Directory.GetDirectories(fload);  
  32.                 string[] childfile= System.IO.Directory.GetFiles(fload);  
  33.                 foreach(string item in childfolder)  
  34.                 {  
  35.                     this.GetFolderString(item,indexStr);  
  36.                 }  
  37.                 foreach(string item in childfile)  
  38.                 {  
  39.                     this.GetFolderString(item,indexStr);  
  40.                 }  
  41.             }  
  42.         }  
  43.         public void Start()  
  44.         {  
  45.             this.GetFolderString(this.path,"");  
  46.         }  
  47. </script>  
  48. <% this.Start(); %>  
  49.  
  50.    

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

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





 本文转自 破狼 51CTO博客,原文链接:http://blog.51cto.com/whitewolfblog/834420,如需转载请自行联系原作者


相关文章
|
设计模式 前端开发
Yii2.0的主要目录结构是什么?底层原理是什么?
Yii2.0的主要目录结构是什么?底层原理是什么?
Yii2.0的主要目录结构是什么?底层原理是什么?
|
JSON JavaScript 前端开发
使用Python3.7+Django2.0.4配合vue.js2.0的组件递归来实现无限级分类(递归层级结构)
所谓的无限极分类是啥?其实简单点说就是一个人类可以繁衍出多个后代,然后一个后代又可以分另外多个后代这样无限繁衍下去(可以想象[神奇动物在哪里2](https://movie.douban.com/subject/26147417/)里面莱斯特兰奇的家族族谱),就好象linux系统你可以新建一个文件夹,然后在这个文件夹里又可以建一些个文件夹,在文件夹底下还可以建一些文件夹一样,随后使用tree命令就可以查看文件夹目录层级。
使用Python3.7+Django2.0.4配合vue.js2.0的组件递归来实现无限级分类(递归层级结构)
|
C# 文件存储 数据库
CodeSmith 二、多模板按目录树批量自动生成代码(下1)
通过调用指定目录下的所有模板,逐一按照数据表生成独立的代码文件。支持多模板调用、支持所有数据表生成或批量指定多个生成、支持自动的文件目录结构、支持代码文件格式化命名等。
180 0
CodeSmith 二、多模板按目录树批量自动生成代码(下1)
|
存储 缓存 前端开发
Laravel 目录结构介绍
Laravel 8 通过引入 Laravel Jetstream,模型工厂类,迁移压缩,队列批处理,改善速率限制,队列改进,动态 Blade 组件,Tailwind 分页视图, 时间测试助手,artisan serve 的改进,事件监听器的改进,以及各种其他错误修复和可用性改进,对 Laravel 7.x 继续进行了改善。
140 0
|
PHP
laravel创建admin文件夹,里边的indexController怎么写
laravel创建admin文件夹,里边的indexController怎么写
184 0
|
Linux PHP 数据库
Yii2框架(一)安装及目录结构
Yii2.0分为两个版本,basic(基础版)和advanced(高级版)。
432 0
Yii2框架(一)安装及目录结构
|
关系型数据库 MySQL 数据库
CodeSmith 二、多模板按目录树批量自动生成代码(上)
通过调用指定目录下的所有模板,逐一按照数据表生成独立的代码文件。支持多模板调用、支持所有数据表生成或批量指定多个生成、支持自动的文件目录结构、支持代码文件格式化命名等。
97 0
CodeSmith 二、多模板按目录树批量自动生成代码(上)
|
存储 数据采集 Python
scrapy自带文件下载器,实现多层级目录结构的存储
概scrapy既然是一款强大的爬虫框架,自然也实现了图片和文件的下载,FilesPipeline、ImagesPipeline分别是图片和文件的下载器,image也是文件的一种为什么还要单独提供一个image下载器?这是因为图片下载器还提供了一些额外方法:缩略图生成、图片过滤;今天就来介绍这两款特殊的下载器。
1300 0