Java:如何在Mac OS X中创建新文件夹

时间:2011-12-05 15:22:22

标签: java macos directory

我想在ex中创建一个文件夹。我在Mac OS X中的桌面

我尝试使用此代码,而不是Mymac当然是我的名字:)

String path="/Users/Mymac/Desktop";
String house = "My_home";
File file=new File(path);
if(!file.exists())
    file.mkdirs(); // or file.mkdir()

file=new File(path + "/" + house);   
try {
  if(file.createNewFile())
   {
   }
} catch (IOException ex) {

  ex.printStackTrace();
}

你知道如何创建一个新文件夹吗? 另一件事是当我想在我的代码所在的目录中创建一个文件夹时,你知道我该怎么写吗?我试过了

   String path="./";

   String path="::MyVolume";

   String path=".";

4 个答案:

答案 0 :(得分:2)

独立于平台的方式:

File rootDir = File.listRoots()[0];
File dir = new File(new File(new File(rootDir, "Users"), "Mymac"), "Desktop");
if (!dir.exists()){
    dir.mkdirs();
}

答案 1 :(得分:1)

您的代码没问题且可以使用。也许您的文件路径(“Mymac”)中的用户名中有拼写错误,因此您看不到更改,因为它们会转到另一个文件夹。

在我的机器上运行此代码可以正常工作并提供预期的结果。

要使您的代码平台无关,您可以使用以下技巧构建文件路径:

File path = new File(File.listRoots()[0], "Users" + System.getProperty("file.separator") + "Mymac" + System.getProperty("file.separator") + "Desktop"));

如果“My_home”应该是文件夹而不是文件,则必须更改file.createNewFile() - 命令。您将在Thomas的答案中找到更详细的信息。

答案 2 :(得分:0)

如果您有权创建新的文件夹和文件,请使用file.mkdir()file.mkdirs()代替file.createNewFile(),它应该有效。

mkdirs()会创建子文件夹,如果它们不存在,mkdir()赢了。

要在基目录(启动应用程序的目录)中创建目录,只需提供相对路径名称:new File("mydir").mkdir();

编辑:为了简化文件处理,我建议你也看看Apache Commons' FilenameUtilsFileUtils

答案 3 :(得分:0)

要找到其中一个类所在的文件夹/目录(假设它们不在Jar中),然后在那里创建一个子文件夹:

    String resource = MyClass.class.getName().replace(".", File.separator) + ".class";      
    URL fileURL = ClassLoader.getSystemClassLoader().getResource(resource);

    String path = new File(fileURL.toURI()).getParent();
    String mySubFolder = "subFolder";
    File newDir = new File(path + File.separator + mySubFolder);
    boolean success = newDir.mkdir();

(上面的代码可以更紧凑,我更详细地列出了演示所有步骤。)当然,您需要关注权限问题。确保运行java的用户有权创建新文件夹。