0

我正在为 Visual Studio 2012 创建一个扩展,并且很难找到运行该扩展的任意文件的位置。有没有人有通过扩展来做到这一点的好方法?也许使用反射或其他某种路径方法?

4

3 回答 3

2

你可以这样做:

Assembly.GetExecutingAssembly().Location

然后你需要查看 Path 中的函数来找到目录。我认为它是其中之一:

Path.GetDirectoryName
Path.GetPathRoot
于 2013-05-23T20:19:08.533 回答
1

我使用了路径扩展

在https://dotnetfiddle.net/上效果很好

  • using System.IO;
var path = "/test/test2/test.txt";
Console.WriteLine($"GetFileName {Path.GetFileName(path)}");
Console.WriteLine($"GetFullPath {Path.GetFullPath(path)}");
Console.WriteLine($"GetDirectoryName {Path.GetDirectoryName(path)}");
// correct exact path without filename
Console.WriteLine($"dirPath {path.Substring(0, path.Length - Path.GetFileName(path).Length)}");

/*
Prints:
GetFileName test.txt
GetFullPath /test/test2/test.txt
GetDirectoryName /test/test2
dirPath /test/test2/
*/

笔记

  • 路径分隔符必须是您机器的本机。例如/test/test2/test.txt,不会在 Windows 上工作,而\test\test2\test.txt
于 2021-07-05T20:52:35.070 回答
0
string executingtitle = _applicationObject.Solution.FullName;
string[] title = executingtitle.Split( ',' );
string filename = title[0];
string filepath = Path.GetFullPath(filename);

我的一位同事帮助了我。这是供将来参考的代码。

于 2013-05-24T13:02:53.200 回答