获取没有文件名的确切路径

时间:2013-05-23 20:02:24

标签: c#

我正在为visual studio 2012创建一个扩展程序,并且很难找到扩展程序正在运行的任意文件的位置。有没有人有通过扩展这样做的好方法?也许用反射或其他一些Path方法?

3 个答案:

答案 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);

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