public static void DeleteDirectory(Packet packet) { Packet sendPacket; try { string[] splited = packet.Argument.Split(char.Parse("|")); Project project = new Project(splited[0]); string path = splited[1]; ConsoleUtils.Print(string.Format("[{0}]'s Request: Delete directory to project {1} [{2}]", packet.ClientIP, project.ProjectName, packet.Username)); DirectoryFileHelper.DeleteDirectory(project.FullPath + path); sendPacket = PacketParser.CreatePacketWithToken(ResponseEnum.Success, packet.Token); packet.Stream.Write(sendPacket.GetBytes(), 0, sendPacket.Length); ConsoleUtils.Print(string.Format("[{0}]'s Request: Deleting directory success: {1} [{2}]", packet.ClientIP, path.Substring(path.LastIndexOf(char.Parse("/"))), packet.Username)); } catch (Exception e) { ConsoleUtils.Print(string.Format("Delete Directory Error: [{0}] {1}", e.GetType().ToString(), e.Message)); sendPacket = PacketParser.CreatePacketWithToken(ResponseEnum.Failure, packet.Token); packet.Stream.Write(sendPacket.GetBytes(), 0, sendPacket.Length); return; } }
internal static void DeleteProject(Project project) { if (project == null) { throw new ArgumentNullException("Can't find inputed project."); } const string config = @"/etc/smb.conf"; int LineNumber = -1; using (var setting = new FileStream(config, FileMode.Open, FileAccess.Read)) { int count = 0; StreamReader best = new StreamReader(setting); do { string getIn = best.ReadLine(); if (getIn == string.Format(@"#[{0}]", project.ProjectName)) { LineNumber = count; break; } else if (getIn == string.Format(@"[{0}]", project.ProjectName)) { throw new MemberAccessException("The project is not deactivated."); } else { count++; } }while (!best.EndOfStream); best.Close(); setting.Close(); } if (LineNumber == -1) { throw new EntryPointNotFoundException("Couldn't find the project name in the config."); } List <string> append = new List <string>(File.ReadAllLines(config)); for (int i = 0; i <= 11; i++) { append.RemoveAt(LineNumber); } File.WriteAllLines(config, append.ToArray()); UpdateAppendedProject(); DirectoryFileHelper.RenameDirectory(project.FullPath, project.FullPath.Insert(9, "Trash/")); }