Java 如何根据登录参数和日期时间戳生成具有目录和文件名的目录结构?

Java 如何根据登录参数和日期时间戳生成具有目录和文件名的目录结构?,java,Java,我有一个方法,它接受诸如hostName,userName等参数。 我通过添加最近的时间来创建文件名。 我想在系统中创建一个文件,其中包括格式/hostName/userName/fileName,以便登录的用户使用自己的凭据在自己的目录中创建一个文件,用户目录包含他们的域和用户名。目录/hostName/userName中有一个名为fileName的文件。例如: User1:/windows/User1/201512110309.txt public File getDirectoryA

我有一个方法,它接受诸如
hostName
userName
等参数。 我通过添加最近的时间来创建文件名。 我想在系统中创建一个文件,其中包括格式
/hostName/userName/fileName
,以便登录的用户使用自己的凭据在自己的目录中创建一个文件,用户目录包含他们的域和用户名。目录
/hostName/userName
中有一个名为fileName的文件。例如:

User1:/windows/User1/201512110309.txt

   public File getDirectoryAndFileName(String hostName, String userName) {
                    String fileName = new SimpleDateFormat("yyyyMMddhhmm'.txt'").format(new Date());
                    File file = new File(hostName + userName + fileName);
                    return file;
    }
User2:/ubuntu/User2/2015121111210.txt

   public File getDirectoryAndFileName(String hostName, String userName) {
                    String fileName = new SimpleDateFormat("yyyyMMddhhmm'.txt'").format(new Date());
                    File file = new File(hostName + userName + fileName);
                    return file;
    }

您可以这样做:

public File createFileStructure(hostName, userName) {
  File baseUserDirectory = new File(hostName, userName);
  String userFileNameToBeCreated = "yyyyMMddHHmm.txt";
   if(!baseUserDirectory.exists()) {
     if(!baseUserDirectory.mkdirs()) {
         throw new IllegalStateException("The base user directory does not exist and could not be created: "
                   + baseUserDirectory);
       }
   }
   if(baseUserDirectory.isDirectory ()) {
     throw new IllegalStateException("The base user directory is not a directory: " + baseUserDirectory);
   }
   //till here you will be sure that your user Directory exists.
   return new File(baseUserDirectory, userFileNameToBeCreated);
  }

你只需要以你想要的格式获取日期

谢谢@recursingMe。我用下面的方法实现

public static void getFile(String hostName, String userName) throws IOException {
            hostName = "/" + hostName;
            userName = "/" + userName;
            File baseUserDirectory = new File(hostName, userName);
            baseUserDirectory.mkdirs();
            String fileName = new SimpleDateFormat("yyyyMMddhhmm'.txt'").format(new Date());        
            File file = new File(baseUserDirectory, fileName);
            file.createNewFile();
        }

文件可能重复。createDirectories(path.get(主机名,用户名))
应该可以。@SamB。这怎么可能是重复?我正在从一个字符串变量创建一个目录,该字符串变量将太多的变量和参数传递到该方法中。我甚至创建了一个新的字符串名,并将其添加到路径名中,这也是一个变量,最后将其作为路径名传递给文件构造函数。本质上,这正是Sam.B发布的内容,而不是使用硬集,您将使用您创建的变量来执行此操作。