private static void getFile
	(
		InputStream isIn
		, long lCLen
		, EzimFileIn efiIn
	)
		throws Exception
	{
		FileOutputStream fosTmp = null;
		byte[] bBuf = new byte[EzimNetwork.dtxBufLen];
		int iTmp = 0;
		long lCnt = 0;

		try
		{
			fosTmp = new FileOutputStream(efiIn.getFile());
			efiIn.setSize(lCLen);
			efiIn.setProgressed(lCnt);

			while(! ((iTmp = isIn.read(bBuf)) < 0) && lCnt < lCLen)
			{
				fosTmp.write(bBuf, 0, iTmp);
				lCnt += iTmp;
				efiIn.setProgressed(lCnt);
			}

			fosTmp.flush();
		}
		catch(SocketException se)
		{
			// connection closed by remote
		}
		finally
		{
			if (fosTmp != null) fosTmp.close();

			String strSysMsg = null;

			if (lCnt < lCLen)
				strSysMsg = EzimLang.TransmissionAbortedByRemote;
			else if (lCnt == lCLen)
				strSysMsg = EzimLang.Done;

			efiIn.endProgress(strSysMsg);
		}
	}