private File getFile(int index) {
		File file = null;

		// ȡַֽ
		String bound = getBound();

		if (!bound.substring(bound.length() - 2).equals("--")) {
			// ȡ
			String dataHeader = getDateHeader();

			// ҪȡݵĿʼλúͽλ:pos[0]Ϊʼλãpos[1]Ϊλ
			int[] pos = getDataContentSegment(bound);

			// ȡֶ
			String fieldName = getFieldNameValue(dataHeader, "name=");

			if (dataHeader.indexOf("filename=") > 0) {
				file = new File();
				// ȡϴļȫ
				String filePath = getFieldNameValue(dataHeader, "filename=");

				// ȡϴļʵ
				String fileName = getFileName(filePath);

				// ȡļ׺
				String fileExt = getFileExt(fileName);

				// ȡļ
				String fileType = getFileType(dataHeader);

				// ȡļС
				int fileSize = (pos[1] - pos[0]) + 1;
				if (fileSize <= 0) {
					file.setAvailable(false);
					file.setFilePath(filePath);
				} else {
					file.setAvailable(true);
					file.setParent(this);
					file.setFieldName(fieldName);
					file.setFilePath(filePath);
					file.setFileName(fileName);
					file.setFileExt(fileExt);
					file.setFileType(fileType);
					file.setFileSize(fileSize);
					file.setStart(pos[0]);
					file.setEnd(pos[1]);
				}
			} else { // ȡֶ
				String fieldNameContent = new String(filecontent_b, pos[0],
						(pos[1] - pos[0]) + 1);
				params.setFields(fieldName, fieldNameContent);
			}
		} else
			current_pos = filecontent_b.length + 1;
		return file;
	}