如何为我的程序设置硬盘位置以在其中搜索或编辑? (爪哇)

How do I set a hard drive location for my program to search or edit in? (Java)

好的,对于初学者来说,如果这个问题的措词有误,我很抱歉,我不太确定如何提出这个问题。一般的想法是我喜欢写一个可以给一个字母的 java 程序,然后在 windows 程序文件中搜索以这个字母开头的程序文件夹,而不是 return 它们给你文本目的地。 (例如,如果我输入字母 J id 喜欢它 return 类似:C:\Program Files\Java)换句话说,有没有办法让你的程序 "set a destination"在这种情况下工作 windows 程序文件?此外,不仅是专门针对这个程序,而且我想知道这是否适用于未来的程序,例如游戏的瞄准机器人或对另一个程序的修改而无需编辑实际的源代码。感谢您的帮助,非常感谢!

编辑 1:更具体地说,我问的是如何实际定位 OS 中的某些文件夹,例如程序 files\Java,而不是直接访问其内容,例如文件名、文件类型,以及 open/view 这些文件的能力。

您可以像这样简单地获取硬盘根目录中的目录列表,

假设驱动器是 C:

创建文件 Class 为:

File dir=new File("c:/");

然后通过执行dir.list()方法你可以得到包含驱动器C中的文件和目录名称的字符串数组。

最后您可以简单地操作数组来找到所需的文件夹。看看这个例子

for (int x=0;x<=dir.length,x++) {
if (file.isDirectory()) {
    //if it is directory you can recursively get the list of files inside untile you get your desired directory
  }
}

您的问题分为两部分:

  1. 设置硬盘位置:您可以使用字符串并将该字符串作为参数传递给文件来实现。

    String location = "C:\Program Files";
    File directory = new File(location);
    

然后 directory 可用于获取指定位置内所有文件和文件夹的列表,如下所述。

    String[] files = directory.list();
    for(String file : files){
        //Check if the sub-directory/file name starts with J
        if(file.startsWith("J")){
            System.out.println(file);   
            //Do something here
        }

    }
  1. 跨平台兼容性:如果你打算运行你的程序跨平台,并且在每个平台有不同的硬盘位置,那么你可以检查OS,并相应地设置 location 的值。你可以参考这个 link 如何做到这一点:How do I programmatically determine operating system in Java?