如何⽤c语⾔输出⽂件路径,关于c:如何从⽂件的完整路径获
取⽬录?
获取⽂件所在⽬录的最简单⽅法是什么?我⽤这个来设置⼀个⼯作⽬录。
string filename = @"C:\MyDirectory\MyFile.bat";
在这个例⼦中,我应该得到"c:mydirectory"。
那不应该是字符串吗?@"C:\MyDirectory\MyFile.bat"
有⼈想保护这个问题吗?谁有权这样做?11个与2017年最后⼀个类似的答案。
如果您确定有绝对路径,请使⽤Path.GetDirectoryName(path)。
如果您可能只得到⼀个相对名称,请使⽤new FileInfo(path).Directory.FullName。
注意,Path和FileInfo都在名称空间System.IO中到。
确实如此,但是否有⼀个名为getdirectory的⽅法?不是GetDirectoryName吗?
您可以只使⽤directoryname⽽不是directory.fullpath,可以吗?
我不想收到亲戚的名字。我没有发现这条路是绝对的。我现在有两个版本:)
敏捷回答……回答、重构、重构、重构;-)
你⽤snippy检查那个吗?;)
System.IO.Path.GetDirectoryName(filename)
更新以提及命名空间。
Path.GetDirectoryName(filename);
您可以使⽤System.IO.Path.GetDirectory(filename),或者将路径转换为FileInfo,然后使⽤FileInfo.Directory。
如果你在这条道路上做其他事情,那么FileInfo可能有优势。
path类中没有"getdirectory⽅法;您的意思必须是"getdirectoryname"
您可以使⽤Path.GetDirectoryName,只需输⼊⽂件名即可。
MSDN链路
使⽤下⾯提到的代码获取⽂件夹路径
Path.GetDirectoryName(filename);
在您的情况下,这将返回"c:mydirectory"
您可以使⽤以下⽅法获取当前应⽤程序路径:
string AssemblyPath = Path.GetDirectoryName(System.Reflection.Assembly.GetExecutingAssembly().Location).ToString();祝你好运!
如果您使⽤的是FileInfo对象,那么有⼀种简单的⽅法可以通过DirectoryName属性提取⽬录完整路径的string表⽰。
通过msdn对FileInfo.DirectoryName属性的描述:
Gets a string representing the directory's full path.
样品使⽤情况:
string filename = @"C:\MyDirectory\MyFile.bat";
FileInfo fileInfo = new FileInfo(filename);
string directoryFullPath = fileInfo.DirectoryName; // contains"C:\MyDirectory"
链接到msdn⽂档。
在我的例⼦中,我需要到⼀个完整路径(⽬录)的⽬录名,所以我只需要:
var dirName = path.Split('\').Last();
OP需要"C:\MyDirectory",⽽不是MyDirectory。使⽤字符串操作⽅法的建议是有风险的,有许多陷阱,⽽使⽤专⽤的Path⽅法。⾸先,必须使⽤System.IO命名空间。然后;
string filename = @"C:\MyDirectory\MyFile.bat";
string newPath = Path.GetFullPath(fileName);
string newPath = Path.GetFullPath(openFileDialog1.FileName));
只是在别⼈需要它的时候,我⽤在我的相对路径上的是:
string rootPath ="MyRootDir/MyFolder1/MyFolder2/myFile.pdf";
while (!string.IsNullOrWhiteSpace(Path.GetDirectoryName(rootPath)))
{
rootPath = Path.GetDirectoryName(rootPath);
}
Console.WriteLine(rootPath); //Will print:"MyRootDir"
c++中string的用法
在⼤多数情况下,您可以使⽤Path.GetFullPath。但是,如果您还想获取路径(如果⽂件名相对位置),则可以使⽤以下通⽤⽅法:string GetPath(string filePath)
{
return Path.GetDirectoryName(Path.GetFullPath(filePath))
}
例如:
GetPath("C:\")返回"C:\Temp\"。
GetPath("")返回current working directory类"C:\Temp\"。

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。