Browse Source

More commands and their tests.

Delete()
MakeDir()
RemoveDir()
jlaffaye 14 years ago
parent
commit
b70c76ed28
2 changed files with 39 additions and 3 deletions
  1. 15 0
      client_test.go
  2. 24 3
      ftp.go

+ 15 - 0
client_test.go

@@ -51,5 +51,20 @@ func TestConn(t *testing.T) {
 		r.Close()
 	}
 
+	err = c.Delete("tset")
+	if err != nil {
+		t.Error(err)
+	}
+
+	err = c.MakeDir("mydir")
+	if err != nil {
+		t.Error(err)
+	}
+
+	err = c.RemoveDir("mydir")
+	if err != nil {
+		t.Error(err)
+	}
+
 	c.Quit()
 }

+ 24 - 3
ftp.go

@@ -259,13 +259,34 @@ func (c *ServerConn) Rename(from, to string) os.Error {
 	return err
 }
 
+func (c *ServerConn) Delete(name string) os.Error {
+	_, err := c.conn.Cmd("DELE %s", name)
+	if err != nil {
+		return err
+	}
+
+	_, _, err = c.conn.ReadCodeLine(StatusRequestedFileActionOK)
+	return err
+}
+
 func (c *ServerConn) MakeDir(name string) os.Error {
-	// todo
-	return nil
+	_, err := c.conn.Cmd("MKD %s", name)
+	if err != nil {
+		return err
+	}
+
+	_, _, err = c.conn.ReadCodeLine(StatusPathCreated)
+	return err
 }
 
 func (c *ServerConn) RemoveDir(name string) os.Error {
-	return nil
+	_, err := c.conn.Cmd("RMD %s", name)
+	if err != nil {
+		return err
+	}
+
+	_, _, err = c.conn.ReadCodeLine(StatusRequestedFileActionOK)
+	return err
 }
 
 // Sends a NOOP command. Usualy used to prevent timeouts.