如何将Visual Studio中的所有源代码导出到文本文件中?

ole*_*sii 7 c# resharper export visual-studio-2010

我有一个相对较大的Visual Studio解决方案.

我需要将所有源代码导出到文本文件中.我还想在某处包含一个文件名.我怎么能这样做?

例如,如果我有一个类型

namespace MyProject.Core
{
    /// <summary>
    ///   Enumerates possible record status
    /// </summary>
    public enum RecordType
    {
        NonWearTime = 0,
        WearTime = 1,
        NotClassified = 2
    }
}
Run Code Online (Sandbox Code Playgroud)

我希望它转到output.txt文件(或任何其他文本格式),并显示如此

//***********************************
//Filename: RecordType.cs
//***********************************
namespace MyProject.Core
{
    /// <summary>
    ///   Enumerates possible record status
    /// </summary>
    public enum RecordType
    {
        NonWearTime = 0,
        WearTime = 1,
        NotClassified = 2
    }
}
Run Code Online (Sandbox Code Playgroud)

所有其他类型只应附加到文件的末尾.我尝试过Resharper,但它的头文件选项只能包含静态文本(我试过Filename: $FILENAME$),模板选项只适用于新创建的类.

伙计们,这是一个研究项目,我必须提供源代码和论文.

Ily*_*nov 8

这应该可以解决问题

string rootPath = @"path you your root folder";
var header = "***********************************" + Environment.NewLine;

var files = Directory.GetFiles(rootPath, "*.cs", SearchOption.AllDirectories);

var result = files.Select(path => new { Name = Path.GetFileName(path), Contents = File.ReadAllText(path)})
                  .Select(info =>   
                      header
                    + "Filename: " + info.Name + Environment.NewLine
                    + header
                    + info.Contents);


var singleStr = string.Join(Environment.NewLine, result);
Console.WriteLine ( singleStr );
File.WriteAllText(@"C:\output.txt", singleStr, Encoding.UTF8);
Run Code Online (Sandbox Code Playgroud)

备注:如果您遇到性能或内存效率低下的问题,请尝试使用,StringBuilder并在开始时将其设置为所有文件内容的总和.这将消除在最后一个Select方法中创建的大量冗余字符串.