public Server(String uri, String dirpass) { listener = new HttpListener(); listener.Prefixes.Add(uri); this.uri = uri; this.filebase = new File_Base("USERS_DIRS"); }
public void ParseRequest(String[] requestresult, HttpListenerContext context) { Boolean result; switch (requestresult[0]) { case "GET": if (requestresult[1] == "ALL") { SendResponse(Encoding.UTF8.GetBytes(filebase.GetAllFilesNames()), context); } else { if (GetFileBytes(requestresult[1]) != null) { SendResponse(GetFileBytes(requestresult[1]), context); } else { SendResponse("file not found", context); } } break; case "PUT": result = AddFile(requestresult[1], filebase.dirpass + "/" + requestresult[1]); if (!result) { SendResponse("Can't add file", context); } else { SendResponse("File add sucsessfully", context); } break; case "DELETE": result = DeleteFile(requestresult[1]); if (!result) { SendResponse("File not found", context); } else { SendResponse("Done", context); } break; case "POST": if (requestresult[1] == "SETDIR") { filebase = new File_Base("USERS_DIRS/" + Encoding.UTF8.GetString(requestcontent)); } else { DeleteFile(requestresult[1]); AddFile(requestresult[1], filebase.dirpass + "/" + requestresult[1]); SendResponse("Done", context); } break; case "COPY": String newfilename = Encoding.UTF8.GetString(requestcontent); result = CopyFile(newfilename, filebase.dirpass + "/" + newfilename, filebase.dirpass + "/" + requestresult[1]); if (!result) { SendResponse("Can't copy file", context); } else { SendResponse("File copy sucsessfully", context); } break; } filebase.Refresh(); }