结合了的DirectoryInfo和FileInfo的路径路径、DirectoryInfo、FileInfo

2023-09-03 03:45:42 作者:酒意诗情谁与共

如果我有绝对的的DirectoryInfo 的路径和一个相对的的FileInfo 的路径,我怎样才能将它们组合成一个绝对的的FileInfo 的路径?

例如:

  VAR absoluteDir =新的DirectoryInfo(@C:\目录);
VAR relativeFile =新的FileInfo(@子目录\文件);
VAR absoluteFile =新的FileInfo(absoluteDir,relativeFile); //  - >如何完成这件事?
 
第十章 文件与流 FileStream StreamWriter StreamReader File FileInfo Directory DirectoryInfo Path Encoding

解决方案

如果absoluteDir和relativeFile存在被用于创建absoluteFile的唯一目的,使用时应可能与普通字符串他们只留下absoluteFile作为一个FileInfo坚持。

  VAR absoluteDir = @C:\目录;
VAR relativeFile = @子目录\文件;
VAR absoluteFile =新的FileInfo(Path.Combine(absoluteDir,relativeFile));
 

如果不然你真的需要他们打字,那么你应该使用Path.Combine适用于每个人的OriginalPath,如:

  VAR absoluteDir =新的DirectoryInfo(@C:\目录);
VAR relativeFile =新的FileInfo(@子目录\文件);
VAR absoluteFile =新的FileInfo(Path.Combine(absoluteDir.OriginalPath),relativeFile.OriginalPath));
 

If I have an absolute DirectoryInfo path and a relative FileInfo path, how can I combine them into an absolute FileInfo path?

For example:

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

解决方案

If absoluteDir and relativeFile exist for the sole purpose of being used to create absoluteFile, use should probably stick with plain strings for them and leaving only absoluteFile as a FileInfo.

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

If otherwise you really need them to be typed, then you should use Path.Combine applied to the OriginalPath of each of them, such as in:

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