条件是目录是否存在,它必须在该特定目录中创建文件而无需创建新目录。
下面的代码仅创建具有新目录的文件,而不为现有目录创建文件。例如,目录名称将类似于“ GETDIRECTION”
String PATH = "/remote/dir/server/";
String fileName = PATH.append(id).concat(getTimeStamp()).append(".txt");
String directoryName = PATH.append(this.getClassName());
File file = new File(String.valueOf(fileName));
File directory = new File(String.valueOf(directoryName));
if(!directory.exists()){
directory.mkdir();
if(!file.exists() && !checkEnoughDiskSpace()){
file.getParentFile().mkdir();
file.createNewFile();
}
}
FileWriter fw = new FileWriter(file.getAbsoluteFile());
BufferedWriter bw = new BufferedWriter(fw);
bw.write(value);
bw.close();
此代码首先检查目录是否存在,如果不存在则创建该目录,然后创建该文件。请注意,由于我没有完整的代码,因此我无法验证您的某些方法调用,因此,我假设对getTimeStamp()
和这样的事情getClassName()
都可以使用。IOException
使用任何java.io.*
类时,您还应该做一些可能抛出的事情-
写文件的函数应该抛出此异常(并在其他地方处理),或者您应该直接在方法中执行此异常。另外,我假设这id
是类型String
-我不知道,因为您的代码未明确定义它。如果是类似的东西int
,您可能应该将其转换为,String
然后再在fileName中使用它,就像我在这里所做的那样。
另外,我append
用concat
或+
认为合适代替了您的电话。
public void writeFile(String value){
String PATH = "/remote/dir/server/";
String directoryName = PATH.concat(this.getClassName());
String fileName = id + getTimeStamp() + ".txt";
File directory = new File(directoryName);
if (! directory.exists()){
directory.mkdir();
// If you require it to make the entire directory path including parents,
// use directory.mkdirs(); here instead.
}
File file = new File(directoryName + "/" + fileName);
try{
FileWriter fw = new FileWriter(file.getAbsoluteFile());
BufferedWriter bw = new BufferedWriter(fw);
bw.write(value);
bw.close();
}
catch (IOException e){
e.printStackTrace();
System.exit(-1);
}
}
如果您想在Microsoft Windows上运行代码,则可能不应该使用这样的裸路径名-
我不确定它会对/
文件名中的做什么。为了获得完全的可移植性,您可能应该使用[File.separator之](http://codingdict.com/questions/121409类的东西来构建路径。
编辑
:根据下面的JosefScript评论,没有必要测试目录是否存在。该directory.mkdir()
调用将返回true
如果它创建一个目录,false
如果没有,包括在这个目录已经存在的情况下。
条件是,如果目录存在,则必须在该特定目录中创建文件,而不创建新目录。 下面的代码仅使用新目录创建一个文件,而不针对现有目录。例如,目录名类似于“GETDIRECTION”:
如果目录不存在,下面的方法是正确的创建方法吗? 它应该拥有脚本的完全权限,并且可以被其他人读取。
问题内容: 如果目录不存在,这是创建目录的正确方法吗?它应该对该脚本具有完全的权限,并且可以被其他人读取。 问题答案:
我目前正在为文件管理服务器开发RecycleBin组件。删除文档时,将从多个位置删除所有版本。出现这种情况时,所有文件夹路径将被删除到重复字符串dp\u original\u folder\u paths。 我想在文件夹路径不存在时创建它。 这是我当前的代码。第一部分检查文件是否存在,如果没有创建它。第二部分显示文档被重新链接到文件夹。 给出的输出为 创建目录:\EAM\sbotest 已创建目录
问题内容: 我想要创建目标目录(如果不存在)的命令(或cp的选项)。 例: 问题答案: ()没有此类选项。
问题内容: 我想使用Jsch库和SFTP协议将文件复制到远程目录。如果远程主机上的目录不存在,则创建它。 在API文档http://epaul.github.com/jsch- documentation/javadoc/中 ,我在put方法中注意到有一种“模式”,但它只是传输模式: -传输模式, RESUME,APPEND,OVERWRITE之一。 有没有一种简便的方法,而不必编写我自己的代码来