关于目录遍历功能的实现

今天回顾Java的IO流的知识,看到遍历目录的知识点,有点犯难!不过幸好最后还是让我敲出来了!

调用类:

 1 public class DirectoryTraversal {
 2     public static void main(String[] args) {
 3         System.out.println("展示指定目录下的所有子目录");
 4         File file = new File("D:\\imooc");
 5         FileUtil.listDirectory(file);
 6         System.err.println("遍历结束");
 7         // 文件进行listFiles(),操作,结果为空!下面的语句出现空指针异常
 8         // File file1=new File("D:\\imooc\\test.txt");
 9         // System.out.println(file1);
10         // File[] files1=file1.listFiles();
11         // for(File ff:files1){
12         // System.out.println(ff);
13         // }
14     }
15 }

工具类:

import java.io.File;

//File的工具类,用于遍历数组
public class FileUtil {
    public static void listDirectory(File f){
        File[] files=f.listFiles();
        if(files!=null && files.length>0){
            for(File file:files){
                System.out.println(file);
//                listDirectory(file);
            }
        }
    }
}

遍历功能主要涉及到了递归这个知识点!没有详细了解,只知道是程序调用自身

5的阶乘的实现:

 1 //递归案例
 2 public class Recursive {
 3     public static int sum = 1;
 4
 5     public static void main(String[] args) {
 6         System.out.println(f(5));
 7     }
 8
 9     /**
10      * 计算5阶乘(result=5*4*3*2*1)
11      *
14      */
15     public static int f(int n) {
16         if (n == 1) {
17             return 1;
18         } else {
19             return f(n - 1) * n;
20         }
21     }
22 }

参考:递归原理解析,要注意的是这边文章中的5的阶乘的实现有问题,阶乘方法中的else语句应该写成:

 return f(n - 1) * n;

时间: 2024-10-23 00:17:44

关于目录遍历功能的实现的相关文章

跨平台的目录遍历实现方法(windows和linux已经测试)

dirent.h是gcc下的一个头文件,在windows中是没有的.这个文件中封装了几个对目录进行操作函数: static DIR *opendir (const char *dirname);static struct dirent *readdir (DIR *dirp);static int closedir (DIR *dirp); 对于在linux->windows之间进行程序移植来讲常常会造成一些困扰. 有一个开源的源码可以解决这个问题. 源码可以从下面的链接下载得到,这个源码是跨平

[cyber security][php]pfSense目录遍历漏洞分析

0×00 导言 pfSense是一个基于FreeBSD,专为防火墙和路由器功能定制的开源版本. 在本文中,我们将向大家介绍在pfSense的2.1.3以及更低版本中的CVE-2014-4690漏洞:对于更高的版本来说,pfSense已经修复了这个漏洞. 0×01 pkg_mgr_install.php脚本中的LFI漏洞 首先,让我们来看一下来自/usr/local/www/pkg_mgr_install.php脚本中的一段代码:  if ($_GET) {   $pkgname = str_re

文件上传下载中的安全问题(上传漏洞与目录遍历攻击)

前言 文件上传与下载是项目中经常需要提供的功能,不管是哪个web应用几乎都可以找到.那本屌今天就来说一说我们在开发中的疏忽可能导致的问题. 先建立一个web工程,目录结构如下 文件上传漏洞 我们来看看下面这段文件上传代码,使用的是common-fileupload.jar 和common-io.jar UploadServlet.java 访问路径/UploadServlet /** * 文件上传 */ protected void doPost(HttpServletRequest reque

目录遍历漏洞原理及复现

一.IIS目录遍历漏洞原理及复现 1.原理 “目录遍历”其实并不能算是漏洞,因为它是IIS的一个功能项.在IIS中将该选项勾上,用户就可以通过目录的形式访问网站中的文件,通常这项功能被用于共享文件.但由于管理员的疏忽或经验不足,在网站中开启了这项功能, 这就造成了IIS目录遍历漏洞. 2.复现 打开IIS信息服务管理器,对网站进行进行如下设置: 打开浏览器,在浏览器中访问该站点,可查看到服务器上的站点文件目录: 二.Apache目录遍历漏洞 1.原理 当客户端访问到一个目录时,Apache服务器

Pikachu:目录遍历、敏感信息泄漏及URL重定向

目录遍历: 在web功能设计中,很多时候我们会要将需要访问的文件定义成变量,从而让前端的功能便的更加灵活. 当用户发起一个前端的请求时,便会将请求的这个文件的值(比如文件名称)传递到后台,后台再执行其对应的文件. 在这个过程中,如果后台没有对前端传进来的值进行严格的安全考虑,则攻击者可能会通过“../”这样的手段让后台打开或者执行一些其他的文件. 从而导致后台服务器上其他目录的文件结果被遍历出来,形成目录遍历漏洞. 看到这里,你可能会觉得目录遍历漏洞和不安全的文件下载,甚至文件包含漏洞有差不多的

pikachu 目录遍历 敏感信息泄露

目录遍历漏洞概述在web功能设计中,很多时候我们会要将需要访问的文件定义成变量,从而让前端的功能变的更加灵活. 当用户发起一个前端的请求时,便会将请求的这个文件的值(比如文件名称)传递到后台,后台再执行其对应的文件. 在这个过程中,如果后台没有对前端传进来的值进行严格的安全考虑,则攻击者可能会通过“../”这样的手段让后台打开或者执行一些其他的文件. 从而导致后台服务器上其他目录的文件结果被遍历出来,形成目录遍历漏洞. 看到这里,你可能会觉得目录遍历漏洞和不安全的文件下载,甚至文件包含漏洞有差不

pikachu靶场-重定向、目录遍历、敏感信息泄露

一.URL重定向 1.概述 不安全的url跳转 不安全的url跳转问题可能发生在一切执行了url地址跳转的地方. 如果后端采用了前端传进来的(可能是用户传参,或者之前预埋在前端页面的url地址)参数作为了跳转的目的地,而又没有做判断的话 就可能发生"跳错对象"的问题. url跳转比较直接的危害是: -->钓鱼,既攻击者使用漏洞方的域名(比如一个比较出名的公司域名往往会让用户放心的点击)做掩盖,而最终跳转的确实钓鱼网站 2.不安全的URL跳转 点击第一个和第二个没有变化,第三个跳转

用一个MapReduce job实现去重,多目录输出功能

总结之前工作中遇到的一个问题. 背景: 运维用scribe从apache服务器推送过来的日志有重复记录,所以这边的ETL处理要去重,还有个需求是要按业务类型多目录输出,方便挂分区,后面的使用. 这两个需求单独处理都没有问题,但要在一个mapreduce里完成,需要一点技巧. 1.map输入数据,经过一系列处理,输出时: if(ttype.equals("other")){ file = (result.toString().hashCode() & 0x7FFFFFFF)%40

小白日记37:kali渗透测试之Web渗透-手动漏洞挖掘(三)-目录遍历、文件包含

手动漏洞挖掘 漏洞类型 #Directory traversal 目录遍历[本台机器操作系统上文件进行读取] 使用者可以通过浏览器/URL地址或者参数变量内容,可以读取web根目录[默认为:/var/www/]之外的其他操作系统文件(如:/etc/passwd/).形成根源:目录权限限制不严格 #File include文件包含[1.include本地文件包含LFI:2.远程系统文件包含RFI(可传入木马)] 通常为如include函数,可以将web根目录以外的目录包含进来.根源:include