public class Files1 extends Object
Modifier and Type | Field and Description |
---|---|
static String |
SEPARATOR |
static String |
WINDOWS_SEPARATOR |
Modifier and Type | Method and Description |
---|---|
static boolean |
cleanFile(File file) |
static boolean |
cleanFile(Path file)
清空文件
|
static boolean |
cleanFile(String file) |
static void |
copy(File source,
File target)
复制文件
|
static void |
copy(String source,
String target) |
static void |
copyDir(File source,
File target) |
static void |
copyDir(File source,
File target,
boolean includeSourceDirName)
复制目录
|
static void |
copyDir(String source,
String target) |
static void |
copyDir(String source,
String target,
boolean includeSourceDirName) |
static int |
countLines(File file)
获取文件的行数
|
static int |
countLines(String file) |
static boolean |
createLink(File source,
File link) |
static boolean |
createLink(Path source,
Path link)
创建连接文件
|
static boolean |
createLink(String source,
String link) |
static boolean |
createSymbolLink(File source,
File link) |
static boolean |
createSymbolLink(Path source,
Path link)
创建连接符号文件
|
static boolean |
createSymbolLink(String source,
String link) |
static boolean |
delete(File file) |
static boolean |
delete(Path file)
删除文件或文件夹
|
static boolean |
delete(String file) |
static boolean |
deleteBigFile(File file)
删除大文件
|
static boolean |
deleteBigFile(String file) |
static boolean |
deleteDir(File path) |
static boolean |
deleteDir(Path path)
删除一个文件夹
|
static boolean |
deleteDir(String path) |
static boolean |
deleteFile(File file) |
static boolean |
deleteFile(Path file)
删除文件
|
static boolean |
deleteFile(String file) |
static boolean |
exists(File file) |
static boolean |
exists(Path file)
文件是否存在
|
static boolean |
exists(String file) |
static FileAttribute |
getAttribute(File file) |
static FileAttribute |
getAttribute(Path file)
获取文件属性
|
static FileAttribute |
getAttribute(String file) |
static FileAttribute |
getAttribute(URI file) |
static long |
getByteSize(String size)
获取文件size
|
static String |
getFileEndLineSeparator(File file)
获取文件行分隔符
|
static String |
getFileEndLineSeparator(String file) |
static String |
getFileLineSeparator(File file)
获取文件行分隔符
|
static String |
getFileLineSeparator(String file) |
static String |
getFileName(File file)
获取文件名称
|
static String |
getFileName(String file)
获取文件名称
|
static Date |
getModifyTime(File file) |
static Date |
getModifyTime(String file)
获取文件最后的修改时间
|
static String |
getOwner(File file) |
static String |
getOwner(Path file)
获取文件所有人
|
static String |
getOwner(String file) |
static String |
getParentPath(File file)
获取文件上级路径
|
static String |
getParentPath(String file)
获取文件上级路径
|
static List<String> |
getParentPaths(File file)
获取所有文件上级路径
|
static List<String> |
getParentPaths(String file)
获取所有文件上级路径
|
static String |
getPath(String path)
获取一个通用路径
|
static String |
getPath(String parent,
String path)
获取一个通用路径
|
static String |
getPathPrefix(String path)
获取路径前缀
|
static String |
getRootPath(String path)
获得用户根目录+输入路径
|
static String |
getRootPathFile(String path,
String file)
获得用户根目录+输入路径
|
static long |
getSize(File file)
获取文件或文件夹大小
|
static String |
getSize(long size)
获取大小
|
static String |
getSize(long size,
int scale)
获取大小
|
static long |
getSize(String file) |
static String |
getSuffix(File file)
获取文件后缀名
|
static String |
getSuffix(String file)
获取文件后缀名
|
static File |
getSymbolicLink(File file) |
static Path |
getSymbolicLink(Path file)
获取连接源文件
|
static Path |
getSymbolicLink(String file) |
static String |
getTempFilePath()
获取一个IO临时文件
|
static String |
getWindowsPath(String path)
获取windows路径
|
static boolean |
hasEndLineSeparator(File file)
文件是否以行分隔符结尾
|
static boolean |
hasEndLineSeparator(String file) |
static boolean |
isDirectory(File file) |
static boolean |
isDirectory(Path file)
是否为文件夹
|
static boolean |
isDirectory(String file) |
static boolean |
isEmpty(File file) |
static boolean |
isEmpty(String file)
判断文件是否为空
|
static boolean |
isExecutable(File file) |
static boolean |
isExecutable(Path file)
文件是否可执行
|
static boolean |
isExecutable(String file) |
static boolean |
isFile(File file) |
static boolean |
isFile(Path file)
是否为普通文件
|
static boolean |
isFile(String file) |
static boolean |
isHidden(File file) |
static boolean |
isHidden(Path file)
文件是否隐藏
|
static boolean |
isHidden(String file) |
static boolean |
isLinuxPath(String path)
判断是否符是合法的文件路径
|
static boolean |
isNormalize(String path)
路径是否统一化
/home/../.
|
static boolean |
isPath(String path)
判断是否符是合法的文件路径
|
static boolean |
isReadable(File file) |
static boolean |
isReadable(Path file)
文件是否可读
|
static boolean |
isReadable(String file) |
static boolean |
isSymbolicLink(File file) |
static boolean |
isSymbolicLink(Path file)
是否为连接文件
|
static boolean |
isSymbolicLink(String file) |
static boolean |
isWindowsPath(String path)
判断是否符是合法的文件路径
|
static boolean |
isWritable(File file) |
static boolean |
isWritable(Path file)
文件是否可写
|
static boolean |
isWritable(String file) |
static List<File> |
listDirs(File path) |
static List<File> |
listDirs(File path,
boolean child)
获取路径下的全部文件夹
|
static List<File> |
listDirs(String path) |
static List<File> |
listDirs(String path,
boolean child) |
static List<File> |
listFiles(File path) |
static List<File> |
listFiles(File path,
boolean child)
获取路径下的全部文件
|
static List<File> |
listFiles(File path,
boolean child,
boolean dir)
获取路径下的全部文件包括文件夹
|
static List<File> |
listFiles(String path) |
static List<File> |
listFiles(String path,
boolean child) |
static List<File> |
listFiles(String path,
boolean child,
boolean dir) |
static List<File> |
listFilesFilter(File dirPath,
FileFilter filter) |
static List<File> |
listFilesFilter(File dirPath,
FileFilter filter,
boolean child) |
static List<File> |
listFilesFilter(File dirPath,
FileFilter filter,
boolean child,
boolean dir)
搜索文件
|
static List<File> |
listFilesFilter(String dirPath,
FileFilter filter) |
static List<File> |
listFilesFilter(String dirPath,
FileFilter filter,
boolean child) |
static List<File> |
listFilesFilter(String dirPath,
FileFilter filter,
boolean child,
boolean dir) |
static String |
md5(File file)
文件 MD5 签名
|
static String |
md5(String file)
文件 MD5 签名
|
static void |
mergeFile(File source,
File target)
合并文件内容到target
|
static void |
mergeFile(List<File> sources,
File target)
合并文件内容到target
|
static void |
mergeFile(List<String> sources,
String target) |
static void |
mergeFile(String source,
String target) |
static boolean |
mkdirs(File path) |
static boolean |
mkdirs(Path path)
创建文件夹
|
static boolean |
mkdirs(String path) |
static boolean |
mv(File file,
File target) |
static boolean |
mv(File file,
String name) |
static boolean |
mv(Path file,
Path target)
文件移动
|
static boolean |
mv(Path file,
String name)
文件重命名
|
static boolean |
mv(String file,
File target) |
static boolean |
mv(String file,
String name) |
static File |
newFile(String file) |
static File |
newFile(String parent,
String file) |
static String |
normalize(String path)
统一化路径
|
static String |
omitPath(String path,
int length) |
static String |
omitPath(String path,
int length,
String omit)
省略路径
|
static FileInputStream |
openInputStream(File file)
打开文件输入流
|
static FileInputStream |
openInputStream(String file) |
static InputStream |
openInputStreamFast(File file) |
static InputStream |
openInputStreamFast(Path file)
打开文件输入流
|
static InputStream |
openInputStreamFast(String file) |
static InputStream |
openInputStreamFastSafe(File file) |
static InputStream |
openInputStreamFastSafe(Path file)
打开文件输入流
|
static InputStream |
openInputStreamFastSafe(String file) |
static FileInputStream |
openInputStreamSafe(File file)
打开文件输入流
|
static FileInputStream |
openInputStreamSafe(String file) |
static FileOutputStream |
openOutputStream(File file)
打开文件输出流
|
static FileOutputStream |
openOutputStream(File file,
boolean append)
打开文件输出流
文件不存在会自动创建
|
static FileOutputStream |
openOutputStream(String file) |
static FileOutputStream |
openOutputStream(String file,
boolean append) |
static OutputStream |
openOutputStreamFast(File file) |
static OutputStream |
openOutputStreamFast(File file,
boolean append) |
static OutputStream |
openOutputStreamFast(Path file)
打开文件输出流
|
static OutputStream |
openOutputStreamFast(Path file,
boolean append)
打开文件输出流
文件不存在则会自动创建
|
static OutputStream |
openOutputStreamFast(String file) |
static OutputStream |
openOutputStreamFast(String file,
boolean append) |
static OutputStream |
openOutputStreamFastSafe(File file) |
static OutputStream |
openOutputStreamFastSafe(File file,
boolean append) |
static OutputStream |
openOutputStreamFastSafe(Path file)
打开文件输出流
|
static OutputStream |
openOutputStreamFastSafe(Path file,
boolean append)
打开文件输出流
|
static OutputStream |
openOutputStreamFastSafe(String file) |
static OutputStream |
openOutputStreamFastSafe(String file,
boolean append) |
static FileOutputStream |
openOutputStreamSafe(File file)
打开文件输出流
|
static FileOutputStream |
openOutputStreamSafe(File file,
boolean append)
打开文件输出流
|
static FileOutputStream |
openOutputStreamSafe(String file) |
static FileOutputStream |
openOutputStreamSafe(String file,
boolean append) |
static RandomAccessFile |
openRandomAccess(File file,
String mode)
打开文件随机读取
|
static RandomAccessFile |
openRandomAccess(String file,
String mode) |
static RandomAccessFile |
openRandomAccessSafe(File file,
String mode)
打开文件随机读取
|
static RandomAccessFile |
openRandomAccessSafe(String file,
String mode) |
static int |
permission10to8(int permission)
10进制权限转8进制权限
777 -> 511
|
static String |
permission10toString(int permission)
10进制权限 转 字符串权限
读(r)=4
写(w)=2
执行(x)=1
|
static int |
permission8to10(int permission)
8进制权限转10进制权限
511 -> 777
|
static int |
permissionStringTo10(String permission)
字符串权限 转 10进制权限
读(r)=4
写(w)=2
执行(x)=1
|
static String |
replacePath(String path)
将路径 替换为系统路径
|
static boolean |
resourceToFile(InputStream source,
File file) |
static boolean |
resourceToFile(InputStream source,
File file,
String charset)
将资源文件保存到本地
|
static boolean |
setExecutable(File file,
boolean exec) |
static boolean |
setExecutable(Path file,
boolean exec)
设置文件是否可执行
|
static boolean |
setExecutable(String file,
boolean exec) |
static boolean |
setReadable(File file,
boolean readable) |
static boolean |
setReadable(Path file,
boolean readable)
设置文件是否可读
|
static boolean |
setReadable(String file,
boolean readable) |
static boolean |
setWritable(File file,
boolean writable) |
static boolean |
setWritable(Path file,
boolean writable)
设置文件是否可写
|
static boolean |
setWritable(String file,
boolean writable) |
static String |
sha1(File file)
文件 SHA1 签名
|
static String |
sha1(String file)
文件 SHA1 签名
|
static String |
sha224(File file)
文件 SHA224 签名
|
static String |
sha224(String file)
文件 SHA224 签名
|
static String |
sha256(File file)
文件 SHA256 签名
|
static String |
sha256(String file)
文件 SHA256 签名
|
static String |
sha384(File file)
文件 SHA384 签名
|
static String |
sha384(String file)
文件 SHA384 签名
|
static String |
sha512(File file)
文件 SHA512 签名
|
static String |
sha512(String file)
文件 SHA512 签名
|
static String |
sign(File file,
HashDigest type)
文件散列签名
|
static String |
sign(String file,
HashDigest type)
文件散列签名
|
static String |
streamToFile(InputStream in,
File file)
将流保存为文件
|
static String |
streamToFile(InputStreamReader reader,
File file) |
static String |
streamToFile(InputStreamReader reader,
File file,
String charset)
将流保存为文件
|
static List<File> |
toFiles(List<String> files)
路径转文件
|
static File[] |
toFiles(String[] files)
路径转文件
|
static String[] |
toPaths(File[] files)
文件转路径
|
static List<String> |
toPaths(List<File> files)
文件转路径
|
static boolean |
touch(File file) |
static boolean |
touch(File file,
boolean clean) |
static boolean |
touch(File file,
String charset) |
static boolean |
touch(File file,
String charset,
boolean clean) |
static boolean |
touch(Path file)
创建文件
|
static boolean |
touch(Path file,
boolean clean)
创建文件
|
static boolean |
touch(Path file,
String charset)
创建文件
|
static boolean |
touch(Path file,
String charset,
boolean clean)
创建文件
|
static boolean |
touch(String file) |
static boolean |
touch(String file,
boolean clean) |
static boolean |
touch(String file,
String charset) |
static boolean |
touch(String file,
String charset,
boolean clean) |
static void |
touchOnDelete(File file)
创建一个在退出时删除的文件
|
static File |
touchOnDelete(String path) |
static File |
touchTempFile() |
static File |
touchTempFile(boolean exitDelete)
创建一个IO临时文件
|
static URI |
toUri(File file)
File -> URI
|
static URI |
toUri(Path path) |
static URI |
toUri(String file) |
static URI[] |
toUris(File[] files)
File -> URI
|
static List<URI> |
toUris(List<File> files)
File -> URI
|
static URL |
toUrl(File file)
File -> URL
|
static URL |
toUrl(Path path) |
static URL |
toUrl(String file) |
static URL[] |
toUrls(File[] files)
File -> URI
|
static List<URL> |
toUrls(List<File> files)
File -> URL
|
public static final String SEPARATOR
public static final String WINDOWS_SEPARATOR
public static FileAttribute getAttribute(String file)
public static FileAttribute getAttribute(File file)
public static FileAttribute getAttribute(URI file)
public static FileAttribute getAttribute(Path file)
file
- 文件public static boolean isExecutable(String file)
public static boolean isExecutable(File file)
public static boolean isExecutable(Path file)
file
- 文件public static boolean setExecutable(String file, boolean exec)
public static boolean setExecutable(File file, boolean exec)
public static boolean setExecutable(Path file, boolean exec)
file
- 文件exec
- 设置文件是否可执行public static boolean isReadable(String file)
public static boolean isReadable(File file)
public static boolean isReadable(Path file)
file
- 文件public static boolean setReadable(String file, boolean readable)
public static boolean setReadable(File file, boolean readable)
public static boolean setReadable(Path file, boolean readable)
file
- 文件readable
- 设置文件是否可读public static boolean isWritable(String file)
public static boolean isWritable(File file)
public static boolean isWritable(Path file)
file
- 文件public static boolean setWritable(String file, boolean writable)
public static boolean setWritable(File file, boolean writable)
public static boolean setWritable(Path file, boolean writable)
file
- 文件writable
- 设置文件是否可写public static boolean isHidden(String file)
public static boolean isHidden(File file)
public static boolean isHidden(Path file)
file
- 文件public static boolean exists(String file)
public static boolean exists(File file)
public static boolean exists(Path file)
file
- 文件public static boolean isFile(String file)
public static boolean isFile(File file)
public static boolean isFile(Path file)
file
- 文件public static boolean isDirectory(String file)
public static boolean isDirectory(File file)
public static boolean isDirectory(Path file)
file
- 文件public static boolean isSymbolicLink(String file)
public static boolean isSymbolicLink(File file)
public static boolean isSymbolicLink(Path file)
file
- 文件public static Path getSymbolicLink(Path file)
file
- 连接文件public static boolean createLink(Path source, Path link)
source
- 源文件link
- 连接文件public static boolean createSymbolLink(Path source, Path link)
source
- 源文件link
- 连接文件public static long getSize(String file)
public static long getSize(File file)
file
- 文件public static String getSize(long size)
size
- 字节public static String getSize(long size, int scale)
size
- 字节scale
- 小数位public static long getByteSize(String size)
size
- 1K = 1000b 1KB = 1024bpublic static boolean resourceToFile(InputStream source, File file) throws IOException
IOException
public static boolean resourceToFile(InputStream source, File file, String charset) throws IOException
source
- 资源file
- filecharset
- 编码IOException
- exceptionpublic static String streamToFile(InputStreamReader reader, File file)
public static String streamToFile(InputStreamReader reader, File file, String charset)
reader
- 流file
- 文件charset
- 编码格式public static String streamToFile(InputStream in, File file)
in
- 流file
- 文件public static void mergeFile(List<File> sources, File target)
sources
- 文件target
- 合并的文件public static void mergeFile(File source, File target)
source
- 文件target
- 合并的文件public static void copyDir(File source, File target, boolean includeSourceDirName)
source
- 源目录target
- 目标目录includeSourceDirName
- 是否包含源文件名称public static boolean touch(String file)
public static boolean touch(File file)
public static boolean touch(Path file)
file
- 文件public static boolean touch(Path file, String charset)
file
- 文件charset
- 编码格式public static boolean touch(String file, boolean clean)
public static boolean touch(File file, boolean clean)
public static boolean touch(Path file, boolean clean)
file
- 文件clean
- 如果文件存在是否清除文件内容public static boolean touch(Path file, String charset, boolean clean)
file
- 文件charset
- 编码格式clean
- 如果文件存在是否清除文件内容public static String getTempFilePath()
public static File touchTempFile()
public static File touchTempFile(boolean exitDelete)
exitDelete
- 是否退出删除public static void touchOnDelete(File file)
file
- filepublic static boolean mv(Path file, Path target)
file
- 文件target
- 目标位置public static boolean mv(Path file, String name)
file
- 文件name
- 名称public static boolean mkdirs(String path)
public static boolean mkdirs(File path)
public static boolean mkdirs(Path path)
path
- 文件夹public static boolean delete(String file)
public static boolean delete(File file)
public static boolean delete(Path file)
file
- 文件public static boolean deleteDir(String path)
public static boolean deleteDir(File path)
public static boolean deleteDir(Path path)
path
- 文件夹public static boolean deleteFile(String file)
public static boolean deleteFile(File file)
public static boolean deleteFile(Path file)
file
- 文件public static boolean deleteBigFile(String file)
public static boolean deleteBigFile(File file)
file
- 文件public static boolean cleanFile(String file)
public static boolean cleanFile(File file)
public static boolean cleanFile(Path file)
file
- 文件public static Date getModifyTime(String file)
file
- 文件public static boolean isEmpty(File file)
public static boolean isEmpty(String file)
file
- 文件public static String getFileLineSeparator(File file)
file
- 文件public static String getFileEndLineSeparator(File file)
file
- 文件public static boolean hasEndLineSeparator(String file)
public static boolean hasEndLineSeparator(File file)
file
- 文件public static int countLines(String file)
public static int countLines(File file)
file
- 统计的文件public static FileInputStream openInputStreamSafe(String file)
public static FileInputStream openInputStreamSafe(File file)
file
- 文件public static FileInputStream openInputStream(String file) throws IOException
IOException
public static FileInputStream openInputStream(File file) throws IOException
file
- 文件IOException
- IOpublic static FileOutputStream openOutputStreamSafe(String file)
public static FileOutputStream openOutputStreamSafe(File file)
file
- 文件public static FileOutputStream openOutputStreamSafe(String file, boolean append)
public static FileOutputStream openOutputStreamSafe(File file, boolean append)
file
- 文件append
- appendpublic static FileOutputStream openOutputStream(String file) throws IOException
IOException
public static FileOutputStream openOutputStream(File file) throws IOException
file
- 文件IOException
- IOpublic static FileOutputStream openOutputStream(String file, boolean append) throws IOException
IOException
public static FileOutputStream openOutputStream(File file, boolean append) throws IOException
file
- 文件append
- appendIOException
- IOpublic static RandomAccessFile openRandomAccessSafe(String file, String mode)
public static RandomAccessFile openRandomAccessSafe(File file, String mode)
file
- filemode
- r rw rws rwdpublic static RandomAccessFile openRandomAccess(String file, String mode) throws IOException
IOException
public static RandomAccessFile openRandomAccess(File file, String mode) throws IOException
file
- filemode
- r rw rws rwdIOException
- IOExceptionpublic static InputStream openInputStreamFastSafe(String file)
public static InputStream openInputStreamFastSafe(File file)
public static InputStream openInputStreamFastSafe(Path file)
file
- 文件public static InputStream openInputStreamFast(String file) throws IOException
IOException
public static InputStream openInputStreamFast(File file) throws IOException
IOException
public static InputStream openInputStreamFast(Path file) throws IOException
file
- 文件IOException
- IOpublic static OutputStream openOutputStreamFastSafe(String file)
public static OutputStream openOutputStreamFastSafe(File file)
public static OutputStream openOutputStreamFastSafe(Path file)
file
- 文件public static OutputStream openOutputStreamFastSafe(String file, boolean append)
public static OutputStream openOutputStreamFastSafe(File file, boolean append)
public static OutputStream openOutputStreamFastSafe(Path file, boolean append)
file
- 文件append
- appendpublic static OutputStream openOutputStreamFast(String file) throws IOException
IOException
public static OutputStream openOutputStreamFast(File file) throws IOException
IOException
public static OutputStream openOutputStreamFast(Path file) throws IOException
file
- 文件IOException
- IOpublic static OutputStream openOutputStreamFast(String file, boolean append) throws IOException
IOException
public static OutputStream openOutputStreamFast(File file, boolean append) throws IOException
IOException
public static OutputStream openOutputStreamFast(Path file, boolean append) throws IOException
file
- 文件append
- appendIOException
- IOpublic static List<String> toPaths(List<File> files)
files
- 文件public static List<File> toFiles(List<String> files)
files
- 路径public static List<URL> toUrls(List<File> files)
files
- filespublic static List<URI> toUris(List<File> files)
files
- filespublic static String getRootPath(String path)
path
- 路径public static String getRootPathFile(String path, String file)
path
- 路径public static String replacePath(String path)
path
- 路径public static boolean isWindowsPath(String path)
path
- 需要处理的文件路径public static boolean isLinuxPath(String path)
path
- 需要处理的文件路径public static boolean isPath(String path)
path
- 需要处理的文件路径public static String getFileName(String file)
file
- 文件public static String getParentPath(String file)
file
- 文件public static String getParentPath(File file)
file
- 文件public static List<String> getParentPaths(String file)
file
- 文件public static List<String> getParentPaths(File file)
file
- 文件public static String getPath(String parent, String path)
parent
- parentpath
- pathpublic static String getWindowsPath(String path)
path
- pathpublic static String normalize(String path)
path
- 路径 /home/.././etc --> /etcpublic static boolean isNormalize(String path)
/home/.././etc --> false /home/./etc --> false /home/ --> true /home --> true
path
- 路径public static String getPathPrefix(String path)
path
- pathpublic static String omitPath(String path, int length, String omit)
path
- pathlength
- lengthomit
- 省略符public static int permission10to8(int permission)
777 -> 511
permission
- 10进制public static int permission8to10(int permission)
511 -> 777
permission
- 8进制public static String permission10toString(int permission)
permission
- 777public static int permissionStringTo10(String permission)
permission
- rwxpublic static String sign(String file, HashDigest type)
file
- 文件type
- 加密类型 MD5 SHA-1 SHA-224 SHA-256 SHA-384 SHA-512public static String sign(File file, HashDigest type)
file
- 文件type
- 加密类型 MD5 SHA-1 SHA-224 SHA-256 SHA-384 SHA-512public static List<File> listDirs(File path, boolean child)
path
- 文件夹child
- 是否递归子文件夹public static List<File> listFiles(File path, boolean child)
path
- 文件夹child
- 是否递归子文件夹public static List<File> listFiles(File path, boolean child, boolean dir)
path
- 文件夹child
- 是否递归子文件夹dir
- 是否添加文件夹public static List<File> listFilesFilter(String dirPath, FileFilter filter)
public static List<File> listFilesFilter(String dirPath, FileFilter filter, boolean child)
public static List<File> listFilesFilter(String dirPath, FileFilter filter, boolean child, boolean dir)
public static List<File> listFilesFilter(File dirPath, FileFilter filter)
public static List<File> listFilesFilter(File dirPath, FileFilter filter, boolean child)
public static List<File> listFilesFilter(File dirPath, FileFilter filter, boolean child, boolean dir)
dirPath
- 文件夹filter
- 过滤器child
- 是否递归子文件夹dir
- 是否包含文件夹Copyright © 2024. All rights reserved.