如何在 C# 中按文件类型查找文件的路径.cs
本文关键字:文件 类型 查找 路径 cs | 更新日期: 2023-09-27 18:36:35
如何按类型查找.cs文件的路径?
功能原型:
string FindPath(Type);
返回类似"C:''Projects''.....''MyClass.cs"的内容
在 .Net 4.5 中,您可以使用 CallerFilePath
反射属性(来自 MSDN):
// using System.Runtime.CompilerServices
// using System.Diagnostics;
public void DoProcessing()
{
TraceMessage("Something happened.");
}
public void TraceMessage(string message,
[CallerMemberName] string memberName = "",
[CallerFilePath] string sourceFilePath = "",
[CallerLineNumber] int sourceLineNumber = 0)
{
Trace.WriteLine("message: " + message);
Trace.WriteLine("member name: " + memberName);
Trace.WriteLine("source file path: " + sourceFilePath);
Trace.WriteLine("source line number: " + sourceLineNumber);
}
// Sample Output:
// message: Something happened.
// member name: DoProcessing
// source file path: c:'Users'username'Documents'Visual Studio 2012'Projects'CallerInfoCS'CallerInfoCS'Form1.cs
// source line number: 31
请参阅: http://msdn.microsoft.com/en-us/library/system.runtime.compilerservices.callerfilepathattribute(v=vs.110).aspx
这是不可能的,没有这样的关系。一个类可以是部分的,因此它甚至可以来自几个不同的源文件。
所有类都在程序集(.exe或.dll)中编译。我认为您无法获取类源文件的路径,因为该类甚至可能不存在(如果您已将.exe文件复制到另一台机器)。
但是,您可以获取正在运行的当前程序集(.exe文件)的路径。查看此答案:获取程序集路径 C#
string file = (new System.Uri(Assembly.GetExecutingAssembly().CodeBase)).AbsolutePath;
如果你在Visual studio中查看,我们可以使用"转到Defenition或F12"直接跳转到特定类型的源代码,我相信这是通过使用Workspace API实现的,深入研究Workspace API功能可能会揭示一些解决方案。
此处的文档链接:工作区