如何获取数组中每个文件的完整路径和名称(不带扩展名)。我的代码就像
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
中获取为空。
我该如何解决这个问题?
答案 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
,因为上述属性并不能完全满足您的需求,而是它的一部分。使用这些属性将所需代码放在一起。