Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- ///<reference path="typings/index.d.ts" />
- 'use strict'
- import * as fs from 'fs'
- import * as path from 'path'
- import * as events from 'events'
- import * as client from 'ftp'
- let conn = new client()
- let em = new events.EventEmitter()
- em.on('upload',(filename)=>{
- console.log('uploading:',filename)
- })
- conn.connect({
- host:'10.27.98.131',
- user:'cms',
- password:'!@qwas#$',
- })
- conn.on('ready',()=>{
- })
- conn.connect({
- host:'10.27.98.131',
- user:'cms',
- password:'!@qwas#$',
- })
- const readDir = (dirname)=>{
- return new Promise((suc,fail)=>{
- fs.readdir(dirname,(err,fnames)=>{
- if(err)fail(err)
- suc(fnames)
- })
- })
- }
- function isDirectory(fname:string){
- return new Promise((suc,fail)=>{
- fs.stat(fname,(err,state)=>{
- if(err)fail(err)
- suc(state.isDirectory())
- })
- })
- }
- let filelen = 0
- async function parseDir(dirname){
- let filenames;
- try{
- filenames = await readDir(dirname)
- for(let i=0;i<filenames.length;i++){
- let fname = path.resolve(dirname,filenames[i])
- let isDir = await isDirectory(fname)
- if(!isDir){
- filelen++;
- em.emit('upload',fname)
- }
- else{
- console.log('dir',fname)
- parseDir(fname)
- }
- }
- }
- catch(e){
- console.log('parseDir err',e)
- }
- }
- async function main(){
- if(process.argv[2]){
- const dir = process.argv[2]
- await parseDir(dir)
- }
- }
- main()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement