Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/371.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/file/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用Java遍历文件和目录_Java_File_Directory_Traversal - Fatal编程技术网

使用Java遍历文件和目录

使用Java遍历文件和目录,java,file,directory,traversal,Java,File,Directory,Traversal,我有一个小代码,它可以返回任何目录下的文件列表 我需要做的是获取第一个给定目录下的目录和文件 这是我正在使用的代码 File dir = new File("C:/myDocument/myFolder"); String[] children = dir.list(); if (children == null) { } else { for (int i=0; i<children.length; i++) {

我有一个小代码,它可以返回任何目录下的文件列表

我需要做的是获取第一个给定目录下的
目录
文件

这是我正在使用的代码

    File dir = new File("C:/myDocument/myFolder");

    String[] children = dir.list();
    if (children == null) {

    } else {
        for (int i=0; i<children.length; i++) {

            String filename = children[i];
            System.out.println(filename);
        }
    }
File dir=新文件(“C:/myDocument/myFolder”);
String[]children=dir.list();
if(children==null){
}否则{

对于(inti=0;iYes),正斜杠是可以的。它们被规范化为依赖于操作系统的分隔符

错误告诉您的是,
\m
是无效的转义序列。每个反斜杠尝试转义以下字符。因此,如果字符串中需要反斜杠,请使用双斜杠:
“c:\\myDocuments\\myFolder”


为了获取目录和文件,您可以使用
.listFiles()
,然后检查它是否是目录。

是的,正斜杠可以。它们被规范化为依赖于操作系统的分隔符

错误告诉您的是,
\m
是无效的转义序列。每个反斜杠尝试转义以下字符。因此,如果字符串中需要反斜杠,请使用双斜杠:
“c:\\myDocuments\\myFolder”


为了获取目录和文件,您可以使用
.listFiles()
,然后检查它是否是目录。

我使用类似的方法清除给定的文件夹

    private static void deleteTree(File file)
    {
      if(file.isDirectory())
      {
        File afile[] = file.listFiles();
         System.out.println("Directory: " + file.getFilename);
         if(afile.length > 0)
         {
            for(int i = 0; i < afile.length; i++)
            {
               if(afile[i].isDirectory())
                  System.out.println("Directory: " + afile[i].getFilename);
                  deleteTree(afile[i]);
               else
                  System.out.println("File: " + afile[i].getFilename);
            }
         }
      } else {
       System.out.println("File: " + file.getFilename);
      }
   }
私有静态void deleteTree(文件)
{
if(file.isDirectory())
{
File afile[]=File.listFiles();
System.out.println(“目录:“+file.getFilename”);
如果(文件长度>0)
{
for(int i=0;i
我使用类似的方法清除给定文件夹

    private static void deleteTree(File file)
    {
      if(file.isDirectory())
      {
        File afile[] = file.listFiles();
         System.out.println("Directory: " + file.getFilename);
         if(afile.length > 0)
         {
            for(int i = 0; i < afile.length; i++)
            {
               if(afile[i].isDirectory())
                  System.out.println("Directory: " + afile[i].getFilename);
                  deleteTree(afile[i]);
               else
                  System.out.println("File: " + afile[i].getFilename);
            }
         }
      } else {
       System.out.println("File: " + file.getFilename);
      }
   }
私有静态void deleteTree(文件)
{
if(file.isDirectory())
{
File afile[]=File.listFiles();
System.out.println(“目录:“+file.getFilename”);
如果(文件长度>0)
{
for(int i=0;i
您可以滥用File.list(FilenameFilter)进行文件遍历,例如:

// list files in dir
new File(dir).list(new FilenameFilter() {
    public boolean accept(File dir, String name) {
        String file = dir.getAbsolutePath() + File.separator + name;
        System.out.println(file);
        return false;
    }
});
您可以滥用File.list(FilenameFilter)进行文件遍历,例如:

// list files in dir
new File(dir).list(new FilenameFilter() {
    public boolean accept(File dir, String name) {
        String file = dir.getAbsolutePath() + File.separator + name;
        System.out.println(file);
        return false;
    }
});

好的,那么第一部分呢?好的,那么第一部分呢?\是Java中的转义字符,用于转义Java字符串中包含的特殊字符。如果您想在Java字符串中包含双引号,则需要转义它们,例如,在给出示例时,so
string foo=“I'm\'bad\”
如果您想在字符串中包含一个\字符,则需要使用另一个\字符对其进行转义,因此您的文件路径如下:
C:\\myFolder\\myFolder
。只要看一下API就可以回答您的所有问题。此外,您编写的代码有什么问题?它看起来应该做您想做的事情您需要它来帮助。\n是Java中的转义字符,用于转义Java字符串中包含的特殊字符。如果您想在Java字符串中包含双引号,则需要转义它们,如so
string foo=“I'm\'bad\”在给出示例时
如果您想在字符串中包含一个\字符,则需要使用另一个\字符对其进行转义,因此您的文件路径如下:
C:\\myFolder\\myFolder
。只要看一下API就可以回答您的所有问题。此外,您编写的代码有什么问题?它看起来应该做您想做的事情你需要它来帮助你。