`

手机访问文件系统(FileConnection)

    博客分类:
  • j2me
阅读更多
import javax.microedition.io.ConnectionNotFoundException;
import javax.microedition.io.Connector;
import javax.microedition.io.PushRegistry;
import javax.microedition.io.file.FileConnection;


try {
			FileConnection filecon = (FileConnection) Connector.open("file:///E:/videos/");
			if (filecon.exists()) {
				Consts.LOCAL_DIR = "file:///E:/videos/";
			} else {
				filecon.mkdir();
				Consts.LOCAL_DIR = "file:///E:/videos/";
			}
		} catch (Exception e) {
			Consts.LOCAL_DIR = System.getProperty("fileconn.dir.videos");
		} finally {
			if (filecon != null) {
				try {
					filecon.close();
				} catch (IOException e) {

				}
				filecon = null;
			}
		}


import java.io.DataOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.util.Calendar;
import java.util.Enumeration;
import java.util.Vector;
import javax.microedition.io.Connector;
import javax.microedition.io.file.FileConnection;

import com.wondertek.controller.MainController;

public class FileUtil {

	public static Vector getList(String path) {
		FileConnection filecon = null;
		try {
			filecon = (FileConnection) (Connector.open(path));
			if (filecon.exists()) {
				Vector listVec = new Vector();
				Enumeration en = filecon.list();
				while (en.hasMoreElements()) {
					String name = (String) en.nextElement();
					if (name.endsWith(".3gp") || name.endsWith(".3GP")) {
						listVec.addElement(name);
					}
				}
				return listVec;
			} else {
				filecon.mkdir();
				return null;
			}
		} catch (Exception e) {
			e.printStackTrace();
			return null;
		} finally {
			try {
				if (filecon != null)
					filecon.close();
			} catch (IOException e) {
				e.printStackTrace();
			}
		}
	}

	public static void deleteFile(String path, String name) {
		FileConnection fc = null;
		try {
			fc = (FileConnection) (Connector.open(path + name));
			if (fc.exists()) {
				fc.delete();
			}
		} catch (Exception e) {
			e.printStackTrace();
		} finally {
			try {
				if (fc != null)
					fc.close();
			} catch (IOException e) {
				e.printStackTrace();
			}
		}

	}

	public static String checkFileName(String fPath, String fName)
			throws IOException {
		boolean needCheck = true;
		FileConnection tmp = null;
		String newName = fName;
		int i = 0;
		while (needCheck) {
			tmp = (FileConnection) Connector.open(fPath + newName);
			if (tmp.exists()) {
				newName = fName.substring(0, fName.indexOf('.')) + "(" + i
						+ ")" + fName.substring(fName.indexOf('.'));
				i++;
			} else {
				needCheck = false;
			}
		}
		tmp.close();
		tmp = null;
		return newName;
	}

	public static void writeImage(String name, byte[] image) {
		FileConnection fc_writeLog = null;
		DataOutputStream dos = null;
		try {
			fc_writeLog = (FileConnection) Connector.open(Consts.LOCAL_DIR
					+ name);
			if (!fc_writeLog.exists()) {
				fc_writeLog.create();
			}
			dos = new DataOutputStream(fc_writeLog.openOutputStream());
			dos.write(image);
			dos.flush();
			dos.close();
			dos = null;
			fc_writeLog.close();
			fc_writeLog = null;
		} catch (IOException e) {
			e.printStackTrace();
		} catch (SecurityException e) {
			e.printStackTrace();
		} finally {
			if (dos != null) {
				try {
					dos.close();
				} catch (IOException e) {
					e.printStackTrace();
				}
				dos = null;
			}
			if (fc_writeLog != null) {
				try {
					fc_writeLog.close();
				} catch (IOException e) {
					e.printStackTrace();
				}
				fc_writeLog = null;
			}
		}
	}

	public static void writeLog(String str, String logAttributeName) {
		FileConnection fc_writeLog = null;
		InputStream is = null;
		int pos;
		DataOutputStream dos = null;
		try {
			fc_writeLog = (FileConnection) Connector.open(Consts.LOCAL_DIR
					+ "log.txt");
			if (!fc_writeLog.exists()) {
				fc_writeLog.create();
				pos = 0;
			} else {
				is = fc_writeLog.openInputStream();
				int size = is.available();
				byte[] posdata = new byte[size];
				pos = is.read(posdata);
			}
			Calendar cal = Calendar.getInstance();
			cal.getTime().toString();
			dos = new DataOutputStream(fc_writeLog.openOutputStream(pos));
			dos.writeUTF("#[" + cal.getTime().toString() + "|||***"
					+ logAttributeName + "] : " + str + "\r\n");
			is.close();
			is = null;
			dos.flush();
			dos.close();
			dos = null;
			fc_writeLog.close();
			fc_writeLog = null;
		} catch (IOException e) {
			e.printStackTrace();
		} catch (Exception e) {
			e.printStackTrace();
		} finally {
			if (dos != null) {
				try {
					dos.close();
				} catch (IOException e) {
					e.printStackTrace();
				}
				dos = null;
			}
			if (fc_writeLog != null) {
				try {
					fc_writeLog.close();
				} catch (IOException e) {
					e.printStackTrace();
				}
				fc_writeLog = null;
			}
		}
	}

	public static boolean checkDirSize(long fileSize) {
		long dirOverSize = 0;
		try {
			MainController.filecon = (FileConnection) Connector
					.open(Consts.LOCAL_DIR);
			if (MainController.filecon.exists()
					&& MainController.filecon.isDirectory()) {
				dirOverSize = MainController.filecon.totalSize()
						- MainController.filecon.usedSize() - 1024 * 1024;
			}
			if (fileSize >= dirOverSize) {
				return false;
			} else {
				return true;
			}
		} catch (IOException e) {
			return false;
		} finally {
			if (MainController.filecon != null) {
				try {
					MainController.filecon.close();
				} catch (IOException e) {

				}
				MainController.filecon = null;
			}
		}
	}
}


public static String LOCAL_DIR = "file:///E:/videos/";
FileUtil.deleteFile(Consts.LOCAL_DIR, currentDown.getSFileName()
				+ ".tmp");
nameVec = FileUtil.getList(Consts.LOCAL_DIR);
分享到:
评论
发表评论

文章已被作者锁定,不允许评论。

相关推荐

    FileConnection

    它提供了对设备文件系统的访问,使得开发者可以进行读写文件、创建目录等操作。这篇详细的文章将深入探讨FileConnection的相关知识点,帮助你更好地理解和运用这个接口。 1. **FileConnection简介** ...

    fileconnection.zip_文件

    这个API提供了访问本地文件系统、读取、写入和管理文件的功能,使得开发者能够实现类似桌面系统上的文件操作。在这个"fileconnection.zip_文件"中,我们关注的是"fileconnection.jar",它很可能是包含FileConnection...

    在Java手机上访问本地文件系统.pdf

    【Java手机上访问本地文件系统】的讨论主要集中在JSR-75的FCAPI(FileConnection API)上,这是一个可选包,专门用于在Java应用程序中实现对手机本地文件系统的访问。随着智能手机的普及,应用程序对文件系统的需求...

    J2ME文件系统(从手机读取文件,递归存储器目录)

    FileConnection接口是J2ME MIDP (Mobile Information Device Profile) 的一部分,它简化了对设备文件系统的访问。这个接口允许开发者创建、删除、重命名文件和目录,以及读取和写入文件内容。 2. **FileConnection...

    J2ME访问手机文件[文].pdf

    在J2ME中访问手机文件系统涉及到JSR75规范,这是Java Community Process定义的一个标准,提供了对个人信息系统(PIM)和文件连接(File Connection, FC)的支持。 在J2ME平台上,程序对文件系统的访问是有限制的,...

    jsr75 API J2ME手机程序文件系统

    **JSR75 API**,全称为Java Specification Request 75,是Java ME(J2ME)平台上的一项标准,主要用于在移动设备上提供文件系统访问的能力。这项API为开发者提供了在资源有限的移动设备上创建、读取、修改和删除文件...

    J2ME文件系统源代码

    1. **连接手机文件系统**:这通常涉及到使用JSR 75提供的`PIM`和`FileConnection`接口。`FileConnection`接口提供了打开、创建、删除、重命名文件或目录的方法,允许开发者与设备的文件系统进行交互。 2. **文件和...

    fileconnection (jsr75)源代码

    这个规范定义了如何在移动设备上访问文件系统、个人信息管理(PIM)数据以及与设备连接,比如红外、蓝牙等。JSR 75是Java ME标准的一部分,用于扩展小型设备的功能,使其能够处理更复杂的文件操作和数据同步。 ...

    j2me手机上的文件浏览器

    为了访问文件系统,`MobileFileBrowser` 使用了 `javax.microedition.io` 和 `javax.microedition.io.file` 这两个包提供的 API。这些 API 提供了对文件系统的读写能力,包括列出目录内容、读取文件等。具体来说: -...

    Java J2ME文件操作代码集.rar

    1. **文件系统访问**:J2ME的`javax.microedition.io.Connector`类提供了对设备文件系统的访问接口。开发者可以通过`new FileConnection("file://path/to/file")`创建一个`FileConnection`对象,然后调用其方法进行...

    JSR75操作手机内存

    JSR75(Java Specification Request 75)是针对J2ME平台的一组可选包,主要包含PIM API(个人信息管理应用程序接口)和FC API(文件连接应用程序接口),用于提供对移动设备上个人信息管理及文件系统访问的支持。...

    j2me程序读取文件

    该接口提供了一组方法用于打开、关闭、读取、写入文件等功能,并且支持多种文件系统。对于资源受限的设备而言,J2ME提供了一种轻量级的文件访问方式。 #### 三、读取文件的方法详解 本节将对提供的代码片段进行...

    诺基亚手机Java开发最新更新

    - **FC APIs**: 允许应用程序访问本地文件系统,这为应用程序提供了更大的灵活性和更多的数据处理能力。 - **配置需求**: JSR75的最低配置要求为CLDC 1.0。 - **MIDP 2.0与安全政策**: 在MIDP 2.0中,MIDlets需要...

    手机录音程序 j2me symbian

    综上所述,这个“手机录音程序 j2me symbian”涵盖了J2ME平台上的音频处理、文件操作、时间处理、资源管理等多个技术领域,以及适应不同设备和系统的兼容性设计。对于想要学习移动设备编程,尤其是使用Java进行手机...

    J2ME文件上传到服务器

    在移动开发领域,Java 2 Micro Edition(J2ME)是一种广泛使用的平台,用于构建运行在小型设备上的应用程序,如手机或嵌入式系统。在J2ME中,实现文件上传到服务器的功能可能会面临一些挑战,因为J2ME的API相对有限...

    手机短信软件 源码 J2ME

    在J2ME中,文件系统访问通常通过FileConnection API完成。开发者可以通过建立FileConnection对象,打开、读写或删除文件。为了增加数据库支持,可以引入JSR-172(Java Persistence API for Wireless),这是一个针对...

    PDA.rar_PDA_j2me_j2me 图片_j2me 文件_j2me 通信

    文件操作在J2ME中相对复杂,因为大多数移动设备的文件系统访问受到限制。javax.microedition.io.FileConnection接口提供了读写本地文件的能力。通过URI,我们可以打开、创建、删除文件或目录。在实际开发中,需要...

    J2me 手机照相存储

    5. **文件系统访问**:在J2ME中,`javax.microedition.io.Connector`和`FileConnection`接口用于与设备的文件系统交互。开发者可以使用这些接口创建、读取、写入和删除文件,包括存储拍摄的照片。 6. **权限管理**...

Global site tag (gtag.js) - Google Analytics