7

我在我的 Windows 系统中安装了 xampp,在我的 linux 系统中安装了lampp。我想使用 java在“ http://localhost/ ”位置创建文件夹。我做了以下事情:

dirName = new File("http://localhost/"+name);
if(!dirName.exists()) {
    dirName.mkdir();
}

有可能吗?这个想法是以编程方式将一些文件下载到该位置。下载工作正常,但我如何创建文件夹以便我可以通过http://example.com/name. 这是跟踪用户相关内容所必需的。我可以访问已经安装了lampp的apache web服务器。如何创建文件夹并将下载内容保存到该文件夹​​,并以编程方式将权限分配给文件夹和其中的内容,以便可以使用wget方法从那里下载保存的内容。

4

3 回答 3

13

不要使用FileAPI。对于严重的文件系统工作,它充满了不当行为。

例如,如果目录创建失败,该.mkdir()方法将返回... 一个布尔值!不会抛出异常。

请改用文件

例如,要创建一个目录:

// Throws exception on failure
Files.createDirectory(Paths.get("/the/path"), 
      PosixFilePermissions.asFileAttribute(      
         PosixFilePermissions.fromString("rwxr-x---")
      ));
于 2013-01-14T20:18:57.063 回答
6

使用具有 PosixPermission 的 Java 文件。 [注意-Windows 不支持 PosixPermission]

Set<PosixFilePermission> perms = PosixFilePermissions.fromString("rwxrwxrwx");
Files.createDirectories(path, PosixFilePermissions.asFileAttribute(perms));
于 2017-02-07T10:24:34.607 回答
2

在 Java 中,您可以通过执行以下操作在系统上的任何可写目录中创建文件:

File file1 = new File("/var/www/newDirectory/");
file1.mkdirs();

然后要在该目录中创建一个文件,您可以执行以下操作:

File file2 = new File(file1.getAbsolutePath() + "newFile.txt"); // You may need to add a "File.seperator()" after the "file1.getAbsolutePath()" if the trailing "/" isn't included
if (file2.exists() == false) {
    file2.createNewFile();
}

为确保您的文件对公众可读,您应该为文件添加读取权限

file2.setReadable(true, false);

在 Apache 中,您可以设置一个虚拟主机,该主机指向您希望从中获取文件的目录。默认情况下,在 debian linux 上是/var/www.

于 2013-01-14T20:09:40.390 回答