在java中创建一个目录
我正在尝试创建一个目录并将文件复制到其中。我已经实现的代码及其输出如下。这个问题似乎是不言自明的,但我会为那些无法分辨的人明确说明。
问题
无论我做什么,我似乎都无法创建复制文件所需的目标文件。
代码
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: }
输出
Writing "J:\warehouse.txt" to "J:\backup\warehouse.txt"
java.io.FileNotFoundException: J:\backup\warehouse.txt (The system cannot find the path specified)
at java.io.FileOutputStream.open(Native Method)
at java.io.FileOutputStream.<init>(FileOutputStream.java:179)
at java.io.FileOutputStream.<init>(FileOutputStream.java:131)
at copy.TUI.copyTo(TUI.java:129)
at copy.TUI.copy(TUI.java:110)
at copy.TUI.run(TUI.java:102)
at copy.Main.main(Main.java:37)
I'm trying to create a directory and copy files to it. The code I've implemented and its output is below. The problem seems self explanatory, but I'll make it explicit for those who can't tell.
Problem
No matter what I do, I can't seem to create the destination file required to copy the file.
Code
get
is the file to be copied, and dest
is the directory to which it will be copied. Line numbers and "ERR>
" were added for clarity. I've commented out other methods of file creation which I've tried, but they all failed.
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: }
Output
Writing "J:\warehouse.txt" to "J:\backup\warehouse.txt"
java.io.FileNotFoundException: J:\backup\warehouse.txt (The system cannot find the path specified)
at java.io.FileOutputStream.open(Native Method)
at java.io.FileOutputStream.<init>(FileOutputStream.java:179)
at java.io.FileOutputStream.<init>(FileOutputStream.java:131)
at copy.TUI.copyTo(TUI.java:129)
at copy.TUI.copy(TUI.java:110)
at copy.TUI.run(TUI.java:102)
at copy.Main.main(Main.java:37)
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
使用以下 -
Use following -
使用dest.getParentFile().mkdir()。这将为您的目标文件创建父目录。如果可能缺少多个父路径元素,您可以使用 mkdirs() 方法递归创建所有缺少的目录。
Use
dest.getParentFile().mkdir()
. This will create the parent dir for your dest file. In case multiple parent path elements might be missing you can use themkdirs()
method to create all missing directories recursively.能够自己修复它。我真是太笨了,一开始就没有看到它......
Was able to fix it myself. Pretty derpy of me to not see it in the first place...