我正在为visual studio 2012创建一个扩展程序,并且很难找到扩展程序正在运行的任意文件的位置。有没有人有通过扩展这样做的好方法?也许用反射或其他一些Path方法?
答案 0 :(得分:2)
你可以这样做:
Assembly.GetExecutingAssembly().Location
然后你需要查看Path中的函数来查找目录。我认为其中之一:
Path.GetDirectoryName
Path.GetPathRoot
答案 1 :(得分: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
会答案 2 :(得分:0)
string executingtitle = _applicationObject.Solution.FullName;
string[] title = executingtitle.Split( ',' );
string filename = title[0];
string filepath = Path.GetFullPath(filename);
我的一位同事帮助了我。这是未来参考的代码。