在C#中编写一些代码,我想知道是否有办法获取directoryinfo对象的正确路径?
目前,我有一个目录,例如:
DirectoryInfo dirInfo = new DirectoryInfo(pathToDirectory);
问题是如果我想获取该特定dirInfo
对象的路径,它总是返回调试路径(bin文件夹)。如果原始dirInfo对象引用D:\testDirectory
路径中的目录,那么我想要一种方法在代码中的其他位置再次获取该路径,而不是获取\bin\debug\testDirectory
有没有办法做到这一点?
目前我正在尝试使用Path
获取dirInfo的路径:
Console.WriteLine("Path: " + Path.GetFullPath(dirInfo.ToString()));
答案 0 :(得分:38)
试试这个。
string pathToDirctory = "D:\\testDirectory";
DirectoryInfo dirInfo = new DirectoryInfo(pathToDirctory);
string path = dirInfo.FullName;
Console.WriteLine(path);
答案 1 :(得分:3)
DirectoryInfo
表示特定目录。创建它时,它所代表的目录取决于您提供的路径。如果你给它一个绝对路径,如c:\foo\bar\baz\bat
,那就是你得到的目录。另一方面,如果您为其提供 relative 路径,例如foo\bar\baz\bat
,则路径相对于进程'当前工作目录。默认情况下,它是从生成当前进程的进程继承的。 Visual Studio启动调试会话,并将正在调试的进程的CWD设置为其bin
目录。因此,如果您创建DirectoryInfo
并为其指定testDirectory
之类的路径,则会得到DirectoryInfo
[project-root]\bin\Debug\testDirectory
。{/ p>
如果需要绝对路径,则必须指定该绝对路径。没有任何捷径。