How to copy all the files in certain Directory and recreate the directory structure using java? -
instead of copying 1 file @ time. zipping files , unzipping them. using below code zip , unzip files, how unzip them , dynamically recreate directory structure file description. e.g: if file
c://users//desktop//635289512-251.txt
i need place file in
c://users//desktop//635_users//2895_access//635289512-251.txt
thank you help.
public static void zip(file directory, file zipfile) throws ioexception { uri base = directory.touri(); deque<file> queue = new linkedlist<file>(); queue.push(directory); outputstream out = new fileoutputstream(zipfile); closeable res = out; try { zipoutputstream zout = new zipoutputstream(out); res = zout; while (!queue.isempty()) { directory = queue.pop(); (file kid : directory.listfiles()) { string name = base.relativize(kid.touri()).getpath(); if (kid.isdirectory()) { queue.push(kid); name = name.endswith("/") ? name : name + "/"; zout.putnextentry(new zipentry(name)); } else { zout.putnextentry(new zipentry(name)); copy(kid, zout); zout.closeentry(); } } } } { res.close(); } } public static void unzip(file zipfile, file directory) throws ioexception { zipfile zfile = new zipfile(zipfile); enumeration<? extends zipentry> entries = zfile.entries(); while (entries.hasmoreelements()) { zipentry entry = entries.nextelement(); file file = new file(directory, entry.getname()); if (entry.isdirectory()) { file.mkdirs(); } else { file.getparentfile().mkdirs(); inputstream in = zfile.getinputstream(entry); try { copy(in, file); } { in.close(); } } } }
Comments
Post a Comment