public boolean processFile(TextProcessor textProcessor) throws Exception {
        if(this.rootDirAddr == null) {
            System.out.println("Please Specify the root directory first");
            return false;
        }

    	byte operation = this.getFileOperation();
        if(operation == DropboxConstants.ADD || operation == DropboxConstants.EDIT) {
         	String fileName = this.getFileName();
	        long fileLastModifiedTime = this.getFileLastModifiedTime();
	        boolean isDir = this.getIsDirFlag();
	        long fileSize = this.getFileSize();
	        this.atomicSaveFile(is, rootDirAddr+fileName, fileSize, fileLastModifiedTime, isDir, textProcessor);
        }
        else  {
            String fullPath = rootDirAddr+this.getFileName();
            File fileObj = new File(fullPath);
            if(fileObj.exists()) {
                if(fileObj.isDirectory()) {
                    DropboxFileUtil.deleteDirAndSubsidiaries(fileObj);
                    System.out.println("delete dir and its subsidiaries:"+ fullPath);
                }
                else {                    
                    fileObj.delete();
                    System.out.println("delete file:"+ fullPath);
                }
            }
        }
        return true;
    }