今天要让我把所有代码都放到一个text文件 中,并统计代码行数。于是用AIR写了个,很简单。
- <?xml version="1.0" encoding="utf-8"?>
- <mx:WindowedApplication xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute">
- <mx:Button x="209" y="166" label="Button" click="clickHandler()"/>
- <mx:Script>
- <![CDATA[
- private var codeTextFile:File;
- private var codeTextFileStream:FileStream;
- private var lineCount:uint = 0;
- private function clickHandler():void {
- codeTextFile = new File("file:///d:/mycode.text")
- codeTextFileStream = new FileStream();
- codeTextFileStream.open(codeTextFile, FileMode.WRITE);
- var codeFile:File = new File("file:///d:/work/web_client/flex/apps");
- writeCodeTectFile(codeFile);
- codeTextFileStream.writeUTFBytes("================================\n");
- codeTextFileStream.writeUTFBytes("code line count : "+lineCount+"\n");
- codeTextFileStream.writeUTFBytes("================================\n");
- codeTextFileStream.close();
- }
- private function writeCodeTectFile(file:File):void {
- if(file.isDirectory) {
- var arr:Array = file.getDirectoryListing();
- for each(var f:File in arr) {
- writeCodeTectFile(f);
- }
- }
- else {
- var r:RegExp = /.+\.(as|mxml)/;
- if(r.test(file.name)) {
- var fs:FileStream = new FileStream();
- fs.open(file,FileMode.READ);
- var s:String = fs.readUTFBytes(fs.bytesAvailable);
- var r2:RegExp = /\n/g;
- lineCount += s.match(r2).length;
- codeTextFileStream.writeUTFBytes(s);
- fs.close();
- codeTextFileStream.writeUTFBytes("\n\n");
- }
- }
- }
- ]]>
- </mx:Script>
- </mx:WindowedApplication>