Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/366.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_String_Methods - Fatal编程技术网

Java 如何在字符串行中引用字符串路径?

Java 如何在字符串行中引用字符串路径?,java,string,methods,Java,String,Methods,我有一个字符串,它位于一个单独的类中,我想在另一个字符串中引用它 public static void filedemo(String[] args) { FileDemo.readLibDir("C:/test/lib"); } public static void readLibDir(String directoryname) { File dir = null; String[] paths; try { dir = new File(d

我有一个字符串,它位于一个单独的类中,我想在另一个字符串中引用它

public static void filedemo(String[] args) {
    FileDemo.readLibDir("C:/test/lib");
}

public static void readLibDir(String directoryname) {
    File dir = null;
    String[] paths;
    try {
        dir = new File(directoryname);
        paths = dir.list(new FilenameFilter() {
            public boolean accept(File directory, String name) {
                // return only files that end .jar extension
                return name.toLowerCase().endsWith(".jar");
            }
        });
        // enhanced for loop used to iterate through the array
        for (String path : paths) {
            // check to see if jar filename exist  
            boolean found = FileNameStorage.exists(path);
            if (found) {
                // didn't find
                FileNameStorage.delete(path);
            } else {
                System.out.print(path+" was not found.\n ");
            }
        }
    } catch (Exception e) {
        // if any error occurs
        e.printStackTrace();
    }
}

public class HtmlDataTable {
    String lines = "<tr>  <td>" + jarfilename + "</td>  <td>"
                        + paths + " </td> <td>" + jarfilename
publicstaticvoidfiledemo(字符串[]args){
FileDemo.readLibDir(“C:/test/lib”);
}
公共静态void readLibDir(字符串directoryname){
File dir=null;
字符串[]路径;
试一试{
dir=新文件(directoryname);
path=dir.list(新文件名过滤器(){
公共布尔接受(文件目录、字符串名称){
//仅返回以.jar扩展名结尾的文件
返回name.toLowerCase().endsWith(“.jar”);
}
});
//用于遍历数组的增强for循环
用于(字符串路径:路径){
//检查jar文件名是否存在
boolean found=FileNameStorage.exists(路径);
如果(找到){
//没有找到
FileNameStorage.delete(路径);
}否则{
System.out.print(未找到路径+);
}
}
}捕获(例外e){
//如果发生任何错误
e、 printStackTrace();
}
}
公共类HtmlDataTable{
字符串行=”“+jarfilename+“”
+路径+“”+jarfilename

您的
路径
变量是某个方法的局部变量。因此,无法从任何其他类(甚至是同一类中的任何其他方法)访问该变量。请查看或通过google了解它


如果要从其他类访问
路径
,最简单的选择是将其作为实例变量并将其公开。

如注释中所述,变量
路径
应定义为类成员(当前在静态方法中定义为局部变量).
只有这样,您才能将其提供给外部呼叫方

一种方法如下:

public class FileDemo {
  private final File dir;

  // constructor
  public FileDemo (String directoryname) {
    dir = new File(directoryname);
  }

  public String[] getPaths() {
    return dir.list(new FilenameFilter() {
       public boolean accept(File directory, String name) {
         // return only files that end .jar extension
         return name.toLowerCase().endsWith(".jar");
       }
    });
  }
  :

  public static void main(String[] args) {
    FileDemo demo = new FileDemo("C:/test/lib");
    String[] paths = demo.getPaths();
    :  // now it is available 
  }
}

不幸的是,在当前的形式下,这看起来更像是一个陈述而不是一个问题。你为什么要恢复编辑?我不确定什么类中的哪个字符串需要访问?@MaxZoom字符串路径,原始问题被编辑,我试图理解为什么如果我犯了错误,我可以在将来纠正它。你能包括吗整个
FileDemo
类代码都使用它?我如何创建路径的实例变量?只需在类中的所有方法之外声明它…就像你如何声明
字符串一样。我没有编写代码,所以我不确定如何在类中的所有方法之外声明它。我对你的结构感到困惑r代码。FileDemo类中是否包含所有这些方法?事实上,我看到您添加了一个主方法,也忽略了这个问题。只有前两个方法是相关的。第三个静态方法只是演示如何使用这些方法的驱动程序。可以删除它,并在调用程序中创建类似的代码。