public static bool add( string user, string passwd, NameValueCollection info, string oldpassword, out string reason) { user = user.ToLower(); bool flag = false; reason = "none"; UserDb.uid_get(user); if (passwd.Length == 0) { flag = true; } passwd = !flag?UserDb.encode_passwd(user, passwd) : oldpassword; lock (UserDb.mylock) { StreamWriter streamWriter; try { streamWriter = new StreamWriter(UserDb.fname(user), true); } catch (Exception ex) { clib.imsg("userdb: add write {0}", (object)ex.ToString()); Directory.CreateDirectory(UserDb.root); try { streamWriter = new StreamWriter(UserDb.fname(user)); } catch { reason = "Write to file failed " + ex.Message; clib.imsg("userdb: add write {0}", (object)ex.ToString()); return(false); } } User user1 = new User(user, passwd, info); streamWriter.WriteLine(user1.ToString()); streamWriter.Close(); return(true); } }