mirror of
https://gitee.com/chinabugotech/hutool.git
synced 2025-12-07 01:28:34 +08:00
修复FileUtil.listFileNames相对路径index混乱问题(issue#4121@Github)
This commit is contained in:
parent
dfe54d6611
commit
5b2b2c6ef3
@ -250,21 +250,13 @@ public class FileUtil {
|
|||||||
if (path == null) {
|
if (path == null) {
|
||||||
return new ArrayList<>(0);
|
return new ArrayList<>(0);
|
||||||
}
|
}
|
||||||
|
path = getAbsolutePath(path);
|
||||||
int index = path.lastIndexOf(FileNameUtil.EXT_JAR_PATH);
|
int index = path.lastIndexOf(FileNameUtil.EXT_JAR_PATH);
|
||||||
if (index < 0) {
|
if (index < 0) {
|
||||||
// 普通目录
|
// 普通目录
|
||||||
final List<String> paths = new ArrayList<>();
|
return Arrays.stream(ls(path)).filter(File::isFile).map(File::getName).toList();
|
||||||
final File[] files = ls(path);
|
|
||||||
for (final File file : files) {
|
|
||||||
if (file.isFile()) {
|
|
||||||
paths.add(file.getName());
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return paths;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// jar文件
|
|
||||||
path = getAbsolutePath(path);
|
|
||||||
// jar文件中的路径
|
// jar文件中的路径
|
||||||
index = index + FileNameUtil.EXT_JAR.length();
|
index = index + FileNameUtil.EXT_JAR.length();
|
||||||
JarFile jarFile = null;
|
JarFile jarFile = null;
|
||||||
@ -323,7 +315,7 @@ public class FileUtil {
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* 创建File对象<br>
|
* 创建File对象<br>
|
||||||
* 此方法会检查slip漏洞,漏洞说明见http://blog.nsfocus.net/zip-slip-2/
|
* 此方法会检查slip漏洞,漏洞说明见<a href="http://blog.nsfocus.net/zip-slip-2/">zip-slip-2</a>
|
||||||
*
|
*
|
||||||
* @param parent 父目录
|
* @param parent 父目录
|
||||||
* @param path 文件路径
|
* @param path 文件路径
|
||||||
@ -336,7 +328,7 @@ public class FileUtil {
|
|||||||
/**
|
/**
|
||||||
* 创建File对象<br>
|
* 创建File对象<br>
|
||||||
* 根据的路径构建文件,在Win下直接构建,在Linux下拆分路径单独构建
|
* 根据的路径构建文件,在Win下直接构建,在Linux下拆分路径单独构建
|
||||||
* 此方法会检查slip漏洞,漏洞说明见http://blog.nsfocus.net/zip-slip-2/
|
* 此方法会检查slip漏洞,漏洞说明见<a href="http://blog.nsfocus.net/zip-slip-2/">zip-slip-2</a>
|
||||||
*
|
*
|
||||||
* @param parent 父文件对象
|
* @param parent 父文件对象
|
||||||
* @param path 文件路径
|
* @param path 文件路径
|
||||||
@ -351,7 +343,7 @@ public class FileUtil {
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* 通过多层目录参数创建文件<br>
|
* 通过多层目录参数创建文件<br>
|
||||||
* 此方法会检查slip漏洞,漏洞说明见http://blog.nsfocus.net/zip-slip-2/
|
* 此方法会检查slip漏洞,漏洞说明见<a href="http://blog.nsfocus.net/zip-slip-2/">zip-slip-2</a>
|
||||||
*
|
*
|
||||||
* @param directory 父目录
|
* @param directory 父目录
|
||||||
* @param names 元素名(多层目录名),由外到内依次传入
|
* @param names 元素名(多层目录名),由外到内依次传入
|
||||||
@ -564,7 +556,7 @@ public class FileUtil {
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* 计算文件的总行数<br>
|
* 计算文件的总行数<br>
|
||||||
* 参考:https://stackoverflow.com/questions/453018/number-of-lines-in-a-file-in-java<br>
|
* 参考:<a href="https://stackoverflow.com/questions/453018/number-of-lines-in-a-file-in-java">number-of-lines-in-a-file-in-java</a><br>
|
||||||
* 最后一行如果末尾带有换行符,则被当作为新行
|
* 最后一行如果末尾带有换行符,则被当作为新行
|
||||||
*
|
*
|
||||||
* @param file 文件
|
* @param file 文件
|
||||||
@ -577,7 +569,7 @@ public class FileUtil {
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* 计算文件的总行数<br>
|
* 计算文件的总行数<br>
|
||||||
* 参考:https://stackoverflow.com/questions/453018/number-of-lines-in-a-file-in-java<br>
|
* 参考:<a href="https://stackoverflow.com/questions/453018/number-of-lines-in-a-file-in-java">number-of-lines-in-a-file-in-java</a><br>
|
||||||
* 最后一行如果末尾带有换行符,则被当作为新行
|
* 最后一行如果末尾带有换行符,则被当作为新行
|
||||||
*
|
*
|
||||||
* @param file 文件
|
* @param file 文件
|
||||||
@ -591,7 +583,7 @@ public class FileUtil {
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* 计算文件的总行数<br>
|
* 计算文件的总行数<br>
|
||||||
* 参考:https://stackoverflow.com/questions/453018/number-of-lines-in-a-file-in-java
|
* 参考:<a href="https://stackoverflow.com/questions/453018/number-of-lines-in-a-file-in-java">number-of-lines-in-a-file-in-java</a>
|
||||||
*
|
*
|
||||||
* @param file 文件
|
* @param file 文件
|
||||||
* @param bufferSize 缓存大小,小于1则使用默认的1024
|
* @param bufferSize 缓存大小,小于1则使用默认的1024
|
||||||
@ -2786,7 +2778,7 @@ public class FileUtil {
|
|||||||
/**
|
/**
|
||||||
* 检查父完整路径是否为自路径的前半部分,如果不是说明不是子路径,可能存在slip注入。
|
* 检查父完整路径是否为自路径的前半部分,如果不是说明不是子路径,可能存在slip注入。
|
||||||
* <p>
|
* <p>
|
||||||
* 见http://blog.nsfocus.net/zip-slip-2/
|
* 见:<a href="http://blog.nsfocus.net/zip-slip-2/">zip-slip-2</a>
|
||||||
*
|
*
|
||||||
* @param parentFile 父文件或目录
|
* @param parentFile 父文件或目录
|
||||||
* @param file 子文件或目录
|
* @param file 子文件或目录
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user