我正在编写一个简单的控制台应用程序来重命名一堆文件/文件夹,我想设计这个控制台应用程序尽可能的模块化。
控制台应用程序非常简单:询问用户源文件夹路径是什么,将文件夹重命名为什么,然后用户按enter键。然后应用程序找到文件夹,并开始递归地重命名子文件夹中的所有文件/文件夹。
如果出现用户要键入不存在的文件夹路径的情况,那么在某个时候,我希望应用程序将“无法找到文件夹”打印给用户。这就是我的问题所在:这条错误信息应该打印在哪里?我可以想到几种选择:
RenameFolder(string folderPath, string newName)调用之前检查文件夹是否存在。打印此文件夹中的错误信息“存在”检查。RenameFolder(string folderPath, string newName),但是如果它没有在该函数中找到一个文件夹,则返回一些错误代码或枚举,表示它找不到该文件夹。然后调用方将识别此枚举并打印错误消息。我无法决定如何创建最“模块化”的代码。你的人有什么想法?
发布于 2016-06-14 00:19:18
1、3和4存在一个问题:在检查和尝试打开文件夹之间可以删除该文件夹。或者网络可能会死,或者权限可能会妨碍等等。与文件系统交互是外生例外的一个很好的来源。
选择2到5之间,C#风格通常是为了避免返回错误代码,所以我不推荐2。选项5很好,特别是对于一个小程序,但是您可能希望将异常抛给调用方,并使用户交互远离您的程序逻辑。
所以最后的流程可能是这样的:
var filename = GetFilename();
var newFilename = GetTarget();
try
{
renameFile(filename, newFilename);
}
catch (IOException e)
{
PrintError(e);
}https://softwareengineering.stackexchange.com/questions/322162
复制相似问题