Compare commits
3 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
5c76476bb4 | ||
|
|
cf05dac581 | ||
|
|
b83b870ac3 |
18
ftp.go
18
ftp.go
@@ -1096,13 +1096,13 @@ func (c *ServerConn) Walk(root string) *Walker {
|
|||||||
|
|
||||||
// Search returns all the directories matching the search pattern
|
// Search returns all the directories matching the search pattern
|
||||||
func (c *ServerConn) Search(pattern string) ([]string, error) {
|
func (c *ServerConn) Search(pattern string) ([]string, error) {
|
||||||
_, message, err := c.cmd(StatusCommandOK, "SITE SEARCH %s", pattern)
|
_, message, err := c.cmd(StatusCommandOK, "SITE SEARCH %s --LIMIT 50000", pattern)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
|
|
||||||
msgs := make([]string, 0)
|
msgs := make([]string, 0)
|
||||||
re := regexp.MustCompile(`^200- (?P<Path>.*) \(.*\).*$`)
|
re := regexp.MustCompile(`^[^\/]*(?P<Path>\/.*) \(.*\).*$`)
|
||||||
for _, msg := range strings.Split(message, "\n") {
|
for _, msg := range strings.Split(message, "\n") {
|
||||||
if re.MatchString(msg) {
|
if re.MatchString(msg) {
|
||||||
msgs = append(msgs, re.ReplaceAllString(msg, "${Path}"))
|
msgs = append(msgs, re.ReplaceAllString(msg, "${Path}"))
|
||||||
@@ -1112,6 +1112,20 @@ func (c *ServerConn) Search(pattern string) ([]string, error) {
|
|||||||
return msgs, nil
|
return msgs, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Search returns all the directories matching the search pattern
|
||||||
|
func (c *ServerConn) Searches(patterns []string) ([]string, error) {
|
||||||
|
msgs := make([]string, 0)
|
||||||
|
for _, pattern := range patterns {
|
||||||
|
msg, err := c.Search(pattern)
|
||||||
|
if err != nil {
|
||||||
|
return msgs, err
|
||||||
|
}
|
||||||
|
msgs = append(msgs, msg...)
|
||||||
|
}
|
||||||
|
|
||||||
|
return msgs, nil
|
||||||
|
}
|
||||||
|
|
||||||
// NoOp issues a NOOP FTP command.
|
// NoOp issues a NOOP FTP command.
|
||||||
// NOOP has no effects and is usually used to prevent the remote FTP server to
|
// NOOP has no effects and is usually used to prevent the remote FTP server to
|
||||||
// close the otherwise idle connection.
|
// close the otherwise idle connection.
|
||||||
|
|||||||
Reference in New Issue
Block a user