public static boolean fileCopy(String sourcePath, String targetPath)
	{
		if (fileExist(sourcePath))
		{
			try
			{
				File source = new File(sourcePath);
				File target = new File(targetPath);

				// overwrite existing file.
				if(fileExist(targetPath))
					fileDelete(targetPath);

				// First try to create the target file's parent directory
				String targetParentDir = StringOps.getCanonicalPathToParent(targetPath);
				boolean targetParentDirCreated = dirCreateRecursive(targetParentDir);

				if(targetParentDirCreated)
				{
					InputStream in = new FileInputStream(source);
					OutputStream out = new FileOutputStream(target);

					// Transfer bytes from in to out
					byte[] buf = new byte[1024];
					int len;

					while ((len = in.read(buf)) >= 0) { out.write(buf, 0, len); }

					in.close();       	
					out.flush();
					out.close();

					return fileExist(targetPath);
				}
				else{ return false;}
			}
			catch (Exception e){ return false; }
		}
		else{ return false;}
	}