组合DirectoryInfo和FileInfo路径

时间:2010-01-08 10:46:12

标签: .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?

4 个答案:

答案 0 :(得分:9)

如果absoluteDir和relativeFile存在的唯一目的是用于创建absoluteFile,那么使用它应该坚持使用普通字符串,并且只将absoluteFile保留为FileInfo。

var absoluteDir = @"c:\dir"; 
var relativeFile = @"subdir\file"; 
var absoluteFile = new FileInfo(Path.Combine(absoluteDir, relativeFile)); 

如果不是你真的需要输入它们,那么你应该使用Path.Combine应用于每个的OriginalPath,例如:

var absoluteDir = new DirectoryInfo(@"c:\dir"); 
var relativeFile = new FileInfo(@"subdir\file"); 
var absoluteFile = new FileInfo(Path.Combine(absoluteDir.OriginalPath), relativeFile.OriginalPath)); 

答案 1 :(得分:3)

您可以在FullPath课程中使用FileInfo属性。

FileInfo.FullPath 将为您提供完整的合格途径,而

FileInfo.OriginalPath 会给你指定的相对路径。

如果你只是希望结合不同的方式,例如要添加相对路径到anoter路径的文件,那么您应该使用Path.Combine(),如上所述。

答案 2 :(得分:0)

试试这个:

Path.Combine(absolute, relative);

答案 3 :(得分:0)

Path.Combine