在java中创建目录
我正在尝试创建一个目录并将文件复制到其中。下面是我实现的代码及其输出。这个问题似乎是不言自明的,但我会让那些不知道的人明白 问题在java中创建目录,java,file,ioexception,creation,filenotfoundexception,Java,File,Ioexception,Creation,Filenotfoundexception,我正在尝试创建一个目录并将文件复制到其中。下面是我实现的代码及其输出。这个问题似乎是不言自明的,但我会让那些不知道的人明白 问题 无论我做什么,似乎都无法创建复制文件所需的目标文件 代码 get是要复制的文件,dest是要复制到的目录。为清晰起见,添加了行号和“ERR>”。我已经注释掉了我尝试过的其他文件创建方法,但都失败了 115: private void copyTo(File get, File dest) 116: { 117: try 118: { 119:
无论我做什么,似乎都无法创建复制文件所需的目标文件 代码
get
是要复制的文件,dest
是要复制到的目录。为清晰起见,添加了行号和“ERR>
”。我已经注释掉了我尝试过的其他文件创建方法,但都失败了
115: private void copyTo(File get, File dest)
116: {
117: try
118: {
119: dest = new File((dest.getPath().endsWith(File.separator) ? dest.getPath() : dest.getPath() + File.separator) + get.getName());
120:
121: java.io.FileInputStream fis = new java.io.FileInputStream(get);
122: if (dest.exists())
123: while(!dest.delete());
124: dest.mkdir();
125:// dest.createNewFile();
126:// java.io.FileWriter w = new java.io.FileWriter(dest);
127:// w.write("");
128: System.out.println("Writing \"" + get + "\" to \"" + dest + "\"");
129:ERR> java.io.FileOutputStream fos = new java.io.FileOutputStream(dest);
130: int b;
131: do
132: {
133: b = fis.read();
134: fos.write(b);
135: }while (b != -1);
136: }
137: catch (FileNotFoundException ex)
138: {
139:// System.err.println("404: \"" + get + "\"");
140: ex.printStackTrace();
141: }
142: catch (java.io.IOException ex)
143: {
144:// System.err.println("IO exception on \"" + get + "\"");
145: ex.printStackTrace();
146: }
147: }
输出
将“J:\warehouse.txt”写入“J:\backup\warehouse.txt”
java.io.FileNotFoundException:J:\backup\warehouse.txt(系统找不到指定的路径)
在java.io.FileOutputStream.open(本机方法)
位于java.io.FileOutputStream。(FileOutputStream.java:179)
位于java.io.FileOutputStream。(FileOutputStream.java:131)
位于copy.TUI.copyTo(TUI.java:129)
at copy.TUI.copy(TUI.java:110)
运行(TUI.java:102)
位于copy.Main.Main(Main.java:37)
使用dest.getParentFile().mkdir()
。这将为dest文件创建父目录。如果可能缺少多个父路径元素,您可以使用mkdirs()
方法递归创建所有缺少的目录。能够自己修复它。我真是太傻了,一开始就没看到
private void copyTo(File get, File dest)
{
try
{
File newDest = new File((dest.getPath().endsWith(File.separator) ? dest.getPath() : dest.getPath() + File.separator) + get.getName());
java.io.FileInputStream fis = new java.io.FileInputStream(get);
if (dest.exists())
dest.delete();
dest.mkdirs();
dest.setWritable(true);
dest.setReadable(true);
// dest.createNewFile();
// java.io.FileWriter w = new java.io.FileWriter(dest);
// w.write("");
System.out.println("Writing \"" + get + "\" to \"" + dest + "\"");
java.io.FileOutputStream fos = new java.io.FileOutputStream(newDest);
int b;
do
{
b = fis.read();
fos.write(b);
}while (b != -1);
}
catch (FileNotFoundException ex)
{
// System.err.println("404: \"" + get + "\"");
ex.printStackTrace();
}
catch (java.io.IOException ex)
{
// System.err.println("IO exception on \"" + get + "\"");
ex.printStackTrace();
}
}
使用下列各项—
dest = dest.isDirectory() ? new File(dest, get.getName()): new File(dest.getParentDirectory(), get.getName());
dest.getParentDirectory().mkdirs();
dest.mkdir()的返回值是多少?
dest = dest.isDirectory() ? new File(dest, get.getName()): new File(dest.getParentDirectory(), get.getName());
dest.getParentDirectory().mkdirs();