如果我有一个绝对的 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?
答案 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
?