.net 组合DirectoryInfo和FileInfo路径

.net 组合DirectoryInfo和FileInfo路径,.net,.net,如果我有绝对DirectoryInfo路径和相对FileInfo路径,如何将它们组合成绝对FileInfo路径 例如: var absoluteDir = new DirectoryInfo(@"c:\dir"); var relativeFile = new FileInfo(@"subdir\file"); var absoluteFile = new FileInfo(absoluteDir, relativeFile); //-> How to get this done? 试试

如果我有绝对DirectoryInfo路径和相对FileInfo路径,如何将它们组合成绝对FileInfo路径

例如:

var absoluteDir = new DirectoryInfo(@"c:\dir");
var relativeFile = new FileInfo(@"subdir\file");
var absoluteFile = new FileInfo(absoluteDir, relativeFile); //-> How to get this done?
试试这个:

Path.Combine(absolute, relative);

Path.Combine

您可以在
FileInfo
类上使用
FullPath
属性

将为您提供完整的限定路径

将为您提供指定的相对路径


如果您只希望组合到不同的路径,例如,要将相对路径添加到另一个路径的文件,则应使用
path.combine()
,如前所述。

如果absoluteDir和relativeFile仅用于创建absoluteFile,使用时可能会使用纯字符串,并且只将absoluteFile保留为FileInfo

var absoluteDir=@“c:\dir”;
var relativeFile=@“subdir\file”;
var absoluteFile=新文件信息(Path.Combine(absoluteDir,relativeFile));
编辑: 如果您确实需要键入它们,则应使用Path.Combine应用于每个路径的原始路径,您可以访问这些路径,例如:

var absoluteDir=newdirectoryinfo(@“c:\dir”);
var relativeFile=新文件信息(@“subdir\file”);
var absoluteFile=new FileInfo(Path.Combine(absoluteDir.ToString(),relativeFile.ToString());

由于“受保护”的状态,无法直接访问该属性。

这适用于DirectoryInfo和FileInfo,还是仅适用于字符串?仅适用于字符串;您不能使用
dir.FullName
file.FullName
吗?谢谢!因此,在.NET类库中没有用于封装文件系统路径的真正类。顺便说一句:你没有错过这样一个类吗?我没有错过一个类,但可能是一个构造函数重载,它接受两个或多个FileSystemInfo(FileInfo和DirectoryInfo的基类)或使用参数的字符串。然后构造函数会将它们组合起来。我得到的是
DirectoryInfo,而OriginalPath
不存在。