public boolean copy(String frompath, long every, URI tofttppath){//every 8m
		/*System.out.println("tofttppath:"+tofttppath);
		System.out.println("this.host:"+this.host);
		System.out.println("this.port:"+this.port);
		System.out.println("tofttppath.getHost:"+tofttppath.getHost());
		System.out.println("tofttppath.getPort:"+tofttppath.getPort());*/
		boolean r=true;
		FileAdapter fa = new FileAdapter(frompath);
		if(this.host.equals(tofttppath.getHost())&&this.port==getFttpPort(tofttppath)){
			if(fa.isDirectory()||fa.length()!=fa.copyTo(tofttppath.getPath(),every))
				r=false;
		}else{
			Workman wm = getWorkerElse(FTTPSN, tofttppath.getHost(), getFttpPort(tofttppath));
			//just for file
			WareHouse inhouse = new WareHouse("filepath", tofttppath.getPath());
			byte[] bts = null;
			long begin=0;
			while((bts=fa.getReader(begin, every).readAll())!=null){//readAllSafety
				inhouse.setObj("filebytes",bts);
				if(!wm.receive(inhouse)){
					r=false;
					break;
				}
				begin+=bts.length;
			}
			if(begin==0&&fa.isFile()&&r){
				inhouse.setObj("filebytes",bts);
				r=wm.receive(inhouse);
			}	
		}
		fa.close();
		return r;
	}