今天要让我把所有代码都放到一个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>