组合DirectoryInfo和FileInfo路径

Dim*_* C. 7 .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?
Run Code Online (Sandbox Code Playgroud)

Alf*_*ers 9

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

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

如果不是你真的需要输入它们,那么你应该使用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)); 
Run Code Online (Sandbox Code Playgroud)

  • 谢谢!很明显,.NET 类库中没有用于封装文件系统路径的真正类。顺便说一句:你不会错过这样的课吗? (3认同)
  • 我得到 `DirectoryInfo,OriginalPath` 不存在。 (2认同)