我想在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=".";
答案 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' FilenameUtils
和FileUtils
。
答案 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的用户有权创建新文件夹。