本篇文章给大家谈谈AndroidSD卡文件系统,以及androidsd卡文件夹的知识点,同时本文还将给你拓展AndroidEmulator在哪里存储SD卡文件?、androidHowto“真的”获得s
本篇文章给大家谈谈Android SD卡文件系统,以及android sd卡 文件夹的知识点,同时本文还将给你拓展Android Emulator在哪里存储SD卡文件?、android Howto“真的”获得sd卡文件的mime类型、Android MP3文件过滤表单SD卡、Android SD卡,文件,文件夹工具等相关知识,希望对各位有所帮助,不要忘了收藏本站喔。
本文目录一览:- Android SD卡文件系统(android sd卡 文件夹)
- Android Emulator在哪里存储SD卡文件?
- android Howto“真的”获得sd卡文件的mime类型
- Android MP3文件过滤表单SD卡
- Android SD卡,文件,文件夹工具
Android SD卡文件系统(android sd卡 文件夹)
我希望能够区分FAT和NTFS.
解决方法
编辑:这是代码
proc = Runtime.getRuntime().exec("mount"); BufferedReader in = new BufferedReader(new InputStreamReader(proc .getInputStream())); String line = null; while ((line = in.readLine()) != null) { //parse here }
你将不得不解析字符串行来检查sdcard的文件系统.我认为它也适用于非root设备
Android Emulator在哪里存储SD卡文件?
如何在另一个模拟器中加载此SD卡?我不想一直为每个模拟器重新创建SD卡上的所有数据.
解决方法
android工具在用户主文件夹中创建一个.android文件夹.此文件夹包含一个avd文件夹,其中存在每个虚拟设备的单独文件夹.在每个文件夹中都应该存在一个名为sdcard.img的文件.此文件包含此AVD自动创建的SD卡图像.
android Howto“真的”获得sd卡文件的mime类型
如何解决android Howto“真的”获得sd卡文件的mime类型?
|| 你好 不要说这是重复的问题,因为我已经读了两天了。 他们中没有一个真正提供有用的答案。 我在sdcard上的文件夹中有许多不同的文件。 想要根据apk,txt,mp3,avi,jpg打开正确的应用程序,或显示选择对话框。 因此,我需要即时的mime类型。 我试过了 : manageQuery通常返回null游标。 MimeTypeMap无法解析.3gp文件,并认为其是.txt URLConnection.guessContentTypeFromName根本不起作用 在想我必须使用MediaFile.java并构建自己的..file.equals(\“。mp3 \”) addFileType(\“ MP3 \”,FILE_TYPE_MP3,\“ audio / mpeg \”); addFileType(\“ M4A \”,FILE_TYPE_M4A,\“ audio / mp4 \”); addFileType(\“ WAV \”,FILE_TYPE_WAV,\“ audio / x-wav \”); addFileType(\“ AMR \”,FILE_TYPE_AMR,\“ audio / amr \”); 那是这样做的方式吗?解决方法
MimeTypeMap
是您可以获得的最好的,然后其余部分继续手动建立哑剧类型。
我想知道3gp文件是如何解释为txt的?对我来说,它的哑剧类型为video/3gp
。
然后,您可以确定是视频还是音频,然后进行相应播放。
但是“ 0”将减少您的大部分工作,这是正确的选择。
Android MP3文件过滤表单SD卡
我正在开发应用程序以从SD卡中获取数据.
我用这个选项进行过滤但是当我使用logcat时我发现我只得到文件sdcard / some_dir的数据
但我有声音文件到不同的文件夹,所以如果可能的话给我通用代码从sdcard获取所有的mp3文件.
class FileExtensionFilter implements FilenameFilter {
public boolean accept(File dir, String name) {
return (name.endsWith(".mp3") || name.endsWith(".MP3"));
}
}
解决方法:
这是我的AudioFilter :)希望它能帮到你
package com.designfuture.music.util;
import java.io.File;
import java.io.FileFilter;
import java.io.FilenameFilter;
import com.designfuture.framework.util.LogHelper;
public class AudioFileFilter implements FileFilter {
protected static final String TAG = "AudioFileFilter";
/**
* allows Directories
*/
private final boolean allowDirectories;
public AudioFileFilter( boolean allowDirectories) {
this.allowDirectories = allowDirectories;
}
public AudioFileFilter() {
this(true);
}
@Override
public boolean accept(File f) {
if ( f.isHidden() || !f.canRead() ) {
return false;
}
if ( f.isDirectory() ) {
return allowDirectories;
}
String ext = getFileExtension(f);
if ( ext == null) return false;
try {
if ( SupportedFileFormat.valueOf(ext.toupperCase()) != null ) {
return true;
}
} catch(IllegalArgumentException e) {
//Not kNown enum value
return false;
}
return false;
}
public String getFileExtension( File f ) {
int i = f.getName().lastIndexOf('.');
if (i > 0) {
return f.getName().substring(i+1);
} else
return null;
}
/**
* Files formats currently supported by Library
*/
public enum SupportedFileFormat
{
_3GP("3gp"),
MP4("mp4"),
M4A("m4a"),
AAC("aac"),
TS("ts"),
FLAC("flac"),
MP3("mp3"),
MID("mid"),
XMF("xmf"),
MXMF("mxmf"),
RTTTL("rtttl"),
RTX("rtx"),
OTA("ota"),
IMY("imy"),
OGG("ogg"),
MKV("mkv"),
WAV("wav");
private String filesuffix;
SupportedFileFormat( String filesuffix ) {
this.filesuffix = filesuffix;
}
public String getFilesuffix() {
return filesuffix;
}
}
}
Android SD卡,文件,文件夹工具
/**
* SD卡是否存在
*
* @return true 存在 false 不存在
*/
public boolean isSdExist() {
boolean sdCardExist = Environment.getExternalStorageState().equals(
android.os.Environment.MEDIA_MOUNTED);
return sdCardExist;
}
/**
* 获得SD卡总大小
* @parm sizeType: 返回的SD卡大小的单位 SIZETYPE_B,SIZETYPE_KB,SIZETYPE_MB,SIZETYPE_GB
* @return double类型 SD卡大小
*/
public double getSDTotalSize(int sizeType) {
if (isSdExist()) {
File path = Environment.getExternalStorageDirectory();
StatFs stat = new StatFs(path.getPath());
long blockSize = stat.getBlockSize();
long totalBlocks = stat.getBlockCount();
return FormetFileSize(blockSize * totalBlocks, sizeType);
}
return 0;
}
/**
* 获得SD卡总大小
* @parm context 上下文
* @return
*/
public String getSDTotalSize(Context context) {
if (isSdExist()) {
File path = Environment.getExternalStorageDirectory();
StatFs stat = new StatFs(path.getPath());
long blockSize = stat.getBlockSize();
long totalBlocks = stat.getBlockCount();
return Formatter.formatFileSize(context, blockSize * totalBlocks);
}
return "";
}
/**
* 获得SD卡剩余容量,即可用大小
*
* @return
*/
public double getSDAvailableSize(int sizeType) {
if (isSdExist()) {
File path = Environment.getExternalStorageDirectory();
StatFs stat = new StatFs(path.getPath());
long blockSize = stat.getBlockSize();
long availableBlocks = stat.getAvailableBlocks();
return FormetFileSize(blockSize * availableBlocks, sizeType);
}
return 0;
}
/**
* 获得SD卡剩余容量,即可用大小
*
* @return
*/
public String getSDAvailableSize(Context context) {
if (isSdExist()) {
File path = Environment.getExternalStorageDirectory();
StatFs stat = new StatFs(path.getPath());
long blockSize = stat.getBlockSize();
long availableBlocks = stat.getAvailableBlocks();
return Formatter.formatFileSize(context, blockSize * availableBlocks);
}
return "";
}
/**
* 获取指定文件大小
*
* @param file
* @return
* @throws Exception
*/
@SuppressWarnings("resource")
public long getFileSize(File file) throws Exception {
long size = 0;
if (file.exists()) {
FileInputStream fis = null;
fis = new FileInputStream(file);
size = fis.available();
} else {
file.createNewFile();
Log.e("获取文件大小", "文件不存在!");
}
return size;
}
/**
* 获取指定文件夹大小
*
* @param f
* @return
* @throws Exception
*/
public long getFileSizes(File f) throws Exception {
long size = 0;
File flist[] = f.listFiles();
for (int i = 0; i < flist.length; i++) {
if (flist[i].isDirectory()) {
size = size + getFileSizes(flist[i]);
} else {
size = size + getFileSize(flist[i]);
}
}
return size;
}
/**
* 获取指定文件的指定单位的大小
*
* @param filePath 文件路径
* @param sizeType 获取大小的类型1为B、2为KB、3为MB、4为GB
* @return double值的大小
*/
public double getFileOrFilesSize(String filePath, int sizeType) {
File file = new File(filePath);
if (!file.exists()) {
return 0;
}
long blockSize = 0;
try {
if (file.isDirectory()) {
blockSize = getFileSizes(file);
} else {
blockSize = getFileSize(file);
}
} catch (Exception e) {
e.printStackTrace();
Log.e("获取文件大小", "获取失败!");
}
return FormetFileSize(blockSize, sizeType);
}
public static final int SIZETYPE_B = 1;
public static final int SIZETYPE_KB = 2;
public static final int SIZETYPE_MB = 3;
public static final int SIZETYPE_GB = 4;
/**
* 转换文件大小,指定转换的类型
*
* @param fileS
* @param sizeType
* @return
*/
private double FormetFileSize(long fileS, int sizeType) {
DecimalFormat df = new DecimalFormat("#.00");
double fileSizeLong = 0;
switch (sizeType) {
case SIZETYPE_B:
fileSizeLong = Double.valueOf(df.format((double) fileS));
break;
case SIZETYPE_KB:
fileSizeLong = Double.valueOf(df.format((double) fileS / 1024));
break;
case SIZETYPE_MB:
fileSizeLong = Double.valueOf(df.format((double) fileS / 1048576));
break;
case SIZETYPE_GB:
fileSizeLong = Double.valueOf(df
.format((double) fileS / 1073741824));
break;
default:
break;
}
return fileSizeLong;
}
/**
* 创建文件
*
* @param path 文件夹路径
* @param fileName 文件名称
* @return
*/
public File getOutFile(String path, String fileName) {
if (!isSdExist()) {
return null;
}
if (path != null) {
File mediaStorageDir = new File(path);
if (!mediaStorageDir.exists()) {
if (!mediaStorageDir.mkdirs()) {
return null;
}
}
}
File f = new File(path + fileName);
if (!f.exists()) {
try {
f.createNewFile();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
return f;
}
/**
* 向已创建的文件中写入数据
* @param str 写入内容
* @param fileName 文件名称
*/
@SuppressLint("SimpleDateFormat")
public void print(String str, String fileName) {
// 获取SD卡剩余大小
double sdSize = getSDAvailableSize();
if (sdSize < 3) {
return;
}
FileWriter fw = null;
BufferedWriter bw = null;
String datetime = "";
try {
SimpleDateFormat tempDate = new SimpleDateFormat("yyyy-MM-dd" + " " + "hh:mm:ss");
datetime = tempDate.format(new java.util.Date()).toString();//插入日期时间
fw = new FileWriter(filenameTemp, true);//
// 创建FileWriter对象,用来写入字符流
bw = new BufferedWriter(fw); // 将缓冲对文件的输出
String myreadline = "[ " + datetime + "]" + str + "\n";
bw.write(myreadline); // 写入文件
bw.newLine();
bw.flush(); // 刷新该流的缓冲
bw.close();
fw.close();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
try {
bw.close();
fw.close();
} catch (IOException e1) {
// TODO Auto-generated catch block
}
}
}
/**
* 获得机身内存总大小
*
* @return
*/
public String getRomTotalSize(Context context) {
File path = Environment.getDataDirectory();
StatFs stat = new StatFs(path.getPath());
long blockSize = stat.getBlockSize();
long totalBlocks = stat.getBlockCount();
return Formatter.formatFileSize(context, blockSize * totalBlocks);
}
/**
* 获得机身内存总大小
* @parm sizeType 返回大小的单位
* @return
*/
public double getRomTotalSize(int sizeType) {
File path = Environment.getDataDirectory();
StatFs stat = new StatFs(path.getPath());
long blockSize = stat.getBlockSize();
long totalBlocks = stat.getBlockCount();
return FormetFileSize(blockSize * totalBlocks , sizeType);
}
/**
* 获得机身可用内存
*
* @return
*/
private String getRomAvailableSize(Context context) {
File path = Environment.getDataDirectory();
StatFs stat = new StatFs(path.getPath());
long blockSize = stat.getBlockSize();
long availableBlocks = stat.getAvailableBlocks();
return Formatter.formatFileSize(context, blockSize * availableBlocks);
}
/**
* 获得机身可用内存
*
* @return
*/
private double getRomAvailableSize(inte sizeType) {
File path = Environment.getDataDirectory();
StatFs stat = new StatFs(path.getPath());
long blockSize = stat.getBlockSize();
long availableBlocks = stat.getAvailableBlocks();
return FormetFileSize(blockSize * availableBlocks , sizeType);
}
关于Android SD卡文件系统和android sd卡 文件夹的问题我们已经讲解完毕,感谢您的阅读,如果还想了解更多关于Android Emulator在哪里存储SD卡文件?、android Howto“真的”获得sd卡文件的mime类型、Android MP3文件过滤表单SD卡、Android SD卡,文件,文件夹工具等相关内容,可以在本站寻找。
本文标签: