我几乎从未使用过Java中的文件,现在正试图找到遍历目录结构的解决方案。
我有这样的结构:\uploaded\abc\Uncle Bob\Another Dir\Hello-123
。
这里Hello-123
包含任何类型的文件,可能包含更多子目录。
现在我将开始步行的\uploaded\abc\
的起始路径。在此之后,总会有2个目录,可能一直都是,所以这将是最大的深度(在“另一个目录”之后)。
目标:找到与输入匹配的目录,并仅上传该目录(或子目录)中的所有文件。
示例:给定输入 Hello-123 我想从开始路径开始遍历所有目录(可能只允许深度+2超过它?)并执行某些操作在处理完每个文件后,该目录中的所有文件(如果找到)都会终止该过程。
任何帮助表示赞赏!
答案 0 :(得分:0)
这看起来像是家庭作业所以我会回答建议而不是代码。
遍历文件或其他树结构是一个递归过程。
首先,您要考虑如何编写递归方法。你要采取行动的是一个目录,所以该方法可能希望将其作为参数传递给它。您还需要考虑返回类型。递归方法是否只是找到并返回Hello-123
目录,或者它会自己采取行动 - 即您希望代码在哪里负责"做某事&# 34。
接下来你需要考虑你的基本情况;您的方法何时决定是采取任何行动还是自行调用。
您的基本案例在我看来就像;
Hello-123
)如果满足任何这些基本情况,您可能希望将某些内容返回到调用堆栈或执行某些操作。仔细考虑一下你可能会回归的东西。如果没有达到这些情况,你可能想知道如何进一步递归。