0
我正在創建一個Windows應用程序,將讀取目錄中的所有文件,這裏是代碼。如何閱讀整個文件,但跳過註釋的代碼在C#
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.IO;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
namespace LathropFileScan
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void btnprint_Click(object sender, EventArgs e)
{
TextWriter text = new StreamWriter("FileScan.csv");
List<string> files = new List<string>();
foreach (string folders in Directory.GetDirectories(@"C:\Users\Desktop\Application","*",SearchOption.AllDirectories))
{
foreach (string file in Directory.GetFiles(folders))
{
int counter = 0;
foreach (string innerfile in Directory.GetFiles(folders))
{
string content = File.ReadAllText(innerfile);
if (content.Contains(Path.GetFileName(file)))
counter++;
}
if (counter == 0)
{
files.Add(file.Substring(34));
}
}
}
foreach (string print in files)
{
text.Write(print + Environment.NewLine);
}
text.Close();
}
}
}
通過使用此代碼,我可以成功讀取目錄的所有文件,但File.ReadAllText()也讀取註釋的代碼。我想跳過評論的代碼,只想讀取未註釋的代碼。無論如何要這樣做。 謝謝。
樣品,你不得不使用某種形式的正則表達式來查找註釋模式//和/ ** /等,並排除那些 –
其中「註釋的代碼」?您正在閱讀的文件中是否包含這些內容?也許它是html,也許它是c#或java,也許它是基本的。他們都有不同的註釋符號。 – spender
當然,只需檢查每行「//」,如果找到則忽略;和「/ *」,並繼續忽略,直到找到結束註釋(「* /」)。 –