如何在没有文件扩展名的情况下获取完整路径和名称?

时间:2017-11-06 16:06:01

标签: c#

如何获取数组中每个文件的完整路径和名称(不带扩展名)。我的代码就像

string myPath=@"D:\Practice\2017";
DirectoryInfo myPathInfo = new DirectoryInfo(myPath);
FileInfo[] myXmlFiles = myPathInfo.GetFiles("*.xml",SearchOption.AllDirectories);
    foreach (FileInfo xmlFile in myXmlFiles)
    {
        var xmlName = Path.GetFileNameWithoutExtension(xmlFile.Name);
        var xmlLoc=Path.GetFullPath(xmlFile.Name);
    }

我根据需要获得xmlName,但在xmlLoc中获取为空。 我该如何解决这个问题?

2 个答案:

答案 0 :(得分:1)

Path.GetFullPath取决于应用程序上下文,因此仅传入文件名会导致一些混淆:

  

此方法使用当前目录和当前卷信息来完全限定路径。 如果仅在路径中指定文件名,则GetFullPath将返回当前目录的完全限定路径

要从FileInfo对象获取XML文件的原始路径,请使用.FullName属性:

foreach (FileInfo xmlFile in myXmlFiles)
{
  var xmlName = Path.GetFileNameWithoutExtension(xmlFile.Name);
  var xmlLoc= xmlFile.FullName;
}

xmlLoc现在将包含XML文件的完整路径:D:\Practice\2017\someXml.xml

答案 1 :(得分:0)

利用DirectoryName类的FileInfo属性。您可能还需要Path.Combine,因为上述属性并不能完全满足您的需求,而是它的一部分。使用这些属性将所需代码放在一起。