Advertisement
Pug_coder

lab2.1_1

Sep 24th, 2021
388
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Go 2.26 KB | None | 0 0
  1. package main
  2.  
  3. import (
  4.     "bytes"
  5.     "fmt"
  6.     "github.com/jlaffaye/ftp"
  7.     "io/ioutil"
  8.     "log"
  9.     "time"
  10. )
  11. func makeDirectory(c *ftp.ServerConn) {
  12.     var data string
  13.     fmt.Println("Add new Directory")
  14.     fmt.Scan(&data)
  15.     err := c.MakeDir(data)
  16.     if err != nil {
  17.         fmt.Println(err)
  18.     }
  19. }
  20.  
  21. func removeDirectory(c *ftp.ServerConn) {
  22.     var data string
  23.     fmt.Println("Directory name to delete")
  24.     fmt.Scan(&data)
  25.     toDel := c.RemoveDir(data)
  26.     if toDel != nil {
  27.         fmt.Println(toDel)
  28.     }
  29. }
  30. func addNewFile(c *ftp.ServerConn) {
  31.     var (
  32.         info string
  33.         fileName string
  34.     )
  35.     fmt.Println("file text")
  36.     fmt.Scan(&info)
  37.     fmt.Println("file name")
  38.     fmt.Scan(&fileName)
  39.     data := bytes.NewBufferString(info)
  40.     err := c.Stor(fileName, data)
  41.     if err != nil {
  42.         fmt.Println(err)
  43.     }
  44. }
  45.  
  46. func listDir(connection *ftp.ServerConn) {
  47.     var directoryName string
  48.     fmt.Print("Directory name: ")
  49.     fmt.Scan(&directoryName)
  50.  
  51.     entries, err := connection.List(directoryName)
  52.  
  53.     if err != nil {
  54.         fmt.Println("Reading error:", err)
  55.     }
  56.     fmt.Println("Directory content:", directoryName)
  57.     for _, entry := range entries {
  58.         fmt.Print("\t")
  59.         switch entry.Type {
  60.         case ftp.EntryTypeFile:
  61.             fmt.Print("folder: ")
  62.         case ftp.EntryTypeFolder:
  63.             fmt.Print("Папка: ")
  64.         default:
  65.             fmt.Print("Object: ")
  66.         }
  67.         fmt.Println(entry.Name)
  68.     }
  69. }
  70.  
  71. func readFile(c *ftp.ServerConn) {
  72.     var data string
  73.     fmt.Println("fileName: ")
  74.     fmt.Scan(&data)
  75.     r, err := c.Retr(data)
  76.     if err != nil {
  77.         fmt.Println(err)
  78.     }
  79.     defer r.Close()
  80.  
  81.     buf, err := ioutil.ReadAll(r)
  82.     println(string(buf))
  83. }
  84.  
  85. func main() {
  86.     c, err := ftp.Dial("students.yss.su:21", ftp.DialWithTimeout(5*time.Second))
  87.     if err != nil {
  88.         log.Fatal(err)
  89.     }
  90.  
  91.     err = c.Login("ftpiu8", "3Ru7yOTA")
  92.     if err != nil {
  93.         log.Fatal(err)
  94.     }
  95.  
  96.     //makeDirectory(c)
  97.     //removeDirectory(c)
  98.     //addNewFile(c)
  99.     //readFile(c)
  100.     //listDir(c)
  101.     fmt.Print("Enter command: ")
  102.     var command string
  103.     fmt.Scanln(&command)
  104.     switch command {
  105.     case "makeDirectory":
  106.         makeDirectory(c)
  107.     case "removeDirectory":
  108.         removeDirectory(c)
  109.     case "addNewFile":
  110.         addNewFile(c)
  111.     case "readFile":
  112.         readFile(c)
  113.     case "listDirectory":
  114.         listDir(c)
  115.     default:
  116.         fmt.Println("Unknown command:", command)
  117.     }
  118.  
  119.     if err := c.Quit(); err != nil {
  120.         log.Fatal(err)
  121.     }
  122. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement