C# 将自定义FileInfo构造函数参数从文件名更改为fileNameOrPath
我正试图通过引用FileInfo和DirectoryInfo密封类来实现一些行为 FileInfo只有一个构造函数。它采用文件名或路径C# 将自定义FileInfo构造函数参数从文件名更改为fileNameOrPath,c#,.net,C#,.net,我正试图通过引用FileInfo和DirectoryInfo密封类来实现一些行为 FileInfo只有一个构造函数。它采用文件名或路径 FileInfo fileInfoOne = new FileInfo("Sample.txt"); FileInfo fileInfoTwo = new FileInfo(@"C:\Test\Sample.txt"); DirectoryInfo只有一个构造函数,它采用path DirectoryInfo directoryInfo = new Direct
FileInfo fileInfoOne = new FileInfo("Sample.txt");
FileInfo fileInfoTwo = new FileInfo(@"C:\Test\Sample.txt");
DirectoryInfo只有一个构造函数,它采用path
DirectoryInfo directoryInfo = new DirectoryInfo(@"C:\Test\");
FileInfo和DirectoryInfo构造函数看起来像
public FileInfo(string fileName);
public DirectoryInfo(string path);
在这里,DirectoryInfo接受路径作为字符串,这是有意义的。但是,FileInfo接受文件名作为字符串,我们可以传递名称或路径,这在我看来有点奇怪
我只想改变构造函数如下
public FileInfo(string fileNameOrPath);
我是否违反了任何设计规则(从命名转换的角度)
注意:我引用FileInfo和DirectoryInfo只是为了参考。我的问题类似,但并不完全相同
更新:
基本上,我们正在实现TextFileInfo、PdfFileInfo、DocFileInfo等。,。这些文件类型中的每一种在公共属性之上都有自己的属性(基于客户端的要求,如DocFileInfo的“TextLanguage”)。希望保留在与FileInfo类似的基本MasterFileInfo类中的公共属性
最后有什么建议吗 路径和文件名是操作系统的概念,当您说
my.txt
时,它意味着当前文件夹中名为my.txt
的文件,文件句柄将指向类似D:\data\temp\my.txt
的内容,其中D:\data\temp\
是当前文件夹。您还可以将。\..\my.txt
作为构造函数的路径,这意味着从当前目录向上搜索一个名为my.txt
的文件,如果当前目录是D:\data\temp\
,它将转换为D:\my.txt
还要注意的是
FileInfo fileInfoOne = new FileInfo("Sample.txt");
FileInfo fileInfoTwo = new FileInfo(@"C:\Test\Sample.txt");
将调用.,但我不同意您指出的
FileInfo
构造函数参数名称/描述没有意义,根据注释,听起来您可以这样做:
public class FileInfoPassthrough // Could this be considered a facade?
{
/// <summary>
/// A much more descriptive parameter name for the FileInfo constructor
/// </summary>
/// <param name="fileNameOrPath">Either the filename at the relative path of execution, or the full filename and path.</param>
public FileInfo GetFileInfo(string fileNameOrPath)
{
return new FileInfo(fileNameOrPath);
}
}
公共类文件InfoPassthrough//这是否可以被视为一个门面?
{
///
///FileInfo构造函数的更具描述性的参数名
///
///相对执行路径处的文件名,或完整文件名和路径。
public FileInfo GetFileInfo(字符串fileNameOrPath)
{
返回新的FileInfo(fileNameOrPath);
}
}
这将允许您拥有一个“更具描述性”的参数名,它只需更新一个FileInfo
并返回它。您可以使用此方法来代替在不同位置更新FileInfo
通过这个类更新
FileInfo
对象,从使用者那里抽象出FileInfo
中构造函数的“坏名字/描述”(假设他们使用这个方法,而不是直接使用FileInfo
)。不是文件名或路径,而是完全限定的文件名(包括路径)或相对文件名。阅读FileInfo
构造函数要调用的第一个操作的描述。我们能看到让您自己的类感到困惑的代码吗?@rajasekhareddy:为什么您需要重写FileInfo
中的大部分内容?为什么您的类不能简单地保存一个或多个FileInfo
对象呢?好的,但是如果您所做的只是将filename或path
传递给FileInfo
,那么您的参数名现在就更加混乱了。因为正如我之前所说,您总是将文件名传递给FileInfo
,而从不传递路径。完全限定的文件名(包括路径)本身与路径不同。不确定这是否回答了问题。但我不确定问题到底是什么。