vb.net - Download a folder from website to client machine in asp.net -


i have folder called "users" on server.

there many users using website.

for each user create different folder. folder's name user's name.

in have default text files , folder called "uploaded"

file uploaded user stored in "uploaded" folder.

so specific user files in "users/username/uploaded".

now want backup huge data on computer server. want download folder called "users".

my site hosted on some.com. doesn't give facility download data on computer.

so decided create download page me.

now question how download folder named "users"? or how can convert folder zip?

first downloaded zip file this link unzipped , added reference dll in third folder.

the using section :

using system.io; using icsharp.sharpziplib.zip; 

code :

zipoutputstream zos; string strbasedir;  protected void page_load(object sender, eventargs e)     {         startzip(server.mappath("directory name"), "filename");     }       protected void startzip(string strpath, string strfilename)     {         memorystream ms = null;         response.contenttype = "application/octet-stream";         strfilename = httputility.urlencode(strfilename).replace('+', ' ');         response.addheader("content-disposition", "attachment; filename=" + strfilename + ".zip");         ms = new memorystream();         zos = new zipoutputstream(ms);         strbasedir = strpath + "\\";         addzipentry(strbasedir);         zos.finish();         zos.close();         response.clear();         response.binarywrite(ms.toarray());         response.end();     }       protected void addzipentry(string pathstr)     {         directoryinfo di = new directoryinfo(pathstr);         foreach (directoryinfo item in di.getdirectories())         {             addzipentry(item.fullname);         }         foreach (fileinfo item in di.getfiles())         {             filestream fs = file.openread(item.fullname);             byte[] buffer = new byte[fs.length];             fs.read(buffer, 0, buffer.length);             string strentryname = item.fullname.replace(strbasedir, "");             zipentry entry = new zipentry(strentryname);             zos.putnextentry(entry);             zos.write(buffer, 0, buffer.length);             fs.close();         }     } 

i got code this link

i converted vb.net. below code vb.net users :

imports section :

imports system.io imports icsharp.sharpziplib.zip 

code :

dim zos zipoutputstream dim strbasedir string  public sub btnbackupdatabase_click(byval sender object, byval e system.eventargs) handles btnbackupdatabase.click          startzip(server.mappath("~/app_data"), "database")      end sub      protected sub startzip(byval strpath string, byval strfilename string)         dim ms io.memorystream = nothing         response.contenttype = "application/octet-stream"         strfilename = httputility.urlencode(strfilename).replace("+"c, " "c)         response.addheader("content-disposition", "attachment; filename=" & strfilename & ".zip")         ms = new io.memorystream()         zos = new zipoutputstream(ms)         strbasedir = strpath & "\"         addzipentry(strbasedir)         zos.finish()         zos.close()         response.clear()         response.binarywrite(ms.toarray())         response.[end]()      end sub       protected sub addzipentry(byval pathstr string)         dim di new io.directoryinfo(pathstr)         each item io.directoryinfo in di.getdirectories()             addzipentry(item.fullname)         next         each item io.fileinfo in di.getfiles()             dim fs io.filestream = io.file.openread(item.fullname)             dim buffer byte() = new byte(fs.length - 1) {}             fs.read(buffer, 0, buffer.length)             dim strentryname string = item.fullname.replace(strbasedir, "")             dim entry new zipentry(strentryname)             zos.putnextentry(entry)             zos.write(buffer, 0, buffer.length)             fs.close()         next     end sub 

Comments

Popular posts from this blog

jquery - How can I dynamically add a browser tab? -

node.js - Getting the socket id,user id pair of a logged in user(s) -

keyboard - C++ GetAsyncKeyState alternative -