Visual studio 在Visual Studio解决方案中查找没有代码的文件(例如,空白或完全注释掉)

Visual studio 在Visual Studio解决方案中查找没有代码的文件(例如,空白或完全注释掉),visual-studio,Visual Studio,我正在研究我的解决方案,发现有几个类完全被注释掉了。我想从我的解决方案中删除这些,并将更改签入源代码管理。我假设随着时间的推移,有人要么重新分解了这段代码,要么删除了它最初提供的任何功能 我只是想知道在我的项目中是否还有像这样的类文件,这样我就可以扔掉垃圾。不知道在VS中有任何这样的工具(不是第三方),但你可以在整个项目中找到“/”,手动选择大部分注释的文件,否则就写一个工具(控制台应用程序)扫描子目录中的所有文件,如果文件中80%的行以//开头,则返回文件名。这里有一个VS宏,用于查找以/*开

我正在研究我的解决方案,发现有几个类完全被注释掉了。我想从我的解决方案中删除这些,并将更改签入源代码管理。我假设随着时间的推移,有人要么重新分解了这段代码,要么删除了它最初提供的任何功能


我只是想知道在我的项目中是否还有像这样的类文件,这样我就可以扔掉垃圾。

不知道在VS中有任何这样的工具(不是第三方),但你可以在整个项目中找到“/”,手动选择大部分注释的文件,否则就写一个工具(控制台应用程序)扫描子目录中的所有文件,如果文件中80%的行以//开头,则返回文件名。这里有一个VS宏,用于查找以/*开头或长度小于等于1的文件。当然,您可以使用“contains//public class”if语句和类似的语句来改进这一点

Public Sub AllFilesWhichAreEmptyOrCommentedOut()
        Dim solution As Solution = DTE.Solution
        For Each prj As Project In solution.Projects
            For Each file As ProjectItem In prj.ProjectItems

                If file.Name.EndsWith(".cs") OrElse file.Name.EndsWith(".vb") Then
                    file.Open()
                    Dim selection As EnvDTE.TextSelection = file.Document.Selection

                    If selection Is Nothing Then
                        Continue For
                    End If

                    selection.StartOfDocument()
                    selection.EndOfDocument(True)

                    Dim content As String = selection.Text
                    If content.StartsWith("/*") Then
                        Log("File " & file.Name & " starts with /*")
                    End If

                    If content.Length <= 1 Then
                        Log("File " & file.Name & " is empty.")
                    End If

                    ' Reset selection back to top
                    selection.StartOfDocument()

                End If

            Next
        Next

    End Sub
Public Sub-all文件,其中包含mptorycommentedout()
作为解决方案的Dim解决方案=DTE.解决方案
对于每个prj作为解决方案中的项目。项目
对于prj.ProjectItems中作为ProjectItem的每个文件
如果file.Name.EndsWith(“.cs”)或lse file.Name.EndsWith(“.vb”),则
file.Open()文件
将所选内容设置为EnvDTE.TextSelection=file.Document.selection
如果选择什么都不是,那么
继续
如果结束
selection.StartOfDocument()
选择。EndOfDocument(真)
将内容设置为字符串=selection.Text
如果content.StartsWith(“/*”),则
日志(“File”&File.Name&“以/*”开头”)
如果结束

如果content.Length
查找-类型f-exec sh-c'grep-vq“^/”{}|124; echo{}\


如回答所示。

搜索包含超过一行的注释的文件。你在寻找一种方法来自动化这个过程吗?我应该运行什么命令来找到那些在项目中留下完整注释文件的开发人员,这样我就可以删除他们了!我认为另一个问题只找到了完全注释的文件(我想要空白或完全注释)。如果你想找到空白文件,大多数操作系统都允许你按大小排列文件。您可以假设那些不占用元数据以外空间的可能是空的。