www.91084.com

GVKun编程网logo

Android SD卡文件系统(android sd卡 文件夹)

13

本篇文章给大家谈谈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 SD卡文件系统(android sd卡 文件夹)

长话短说 – 如何查看SD卡上使用的文件系统?

我希望能够区分FAT和NTFS.

解决方法

一种方法是解析mount命令的输出

编辑:这是代码

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卡文件?

Android Emulator在哪里存储SD卡文件?

我想让两个模拟器使用相同的SD卡图像.我在第一个仿真器中自动创建了SD卡,并将所有数据下载到此SD卡中.

如何在另一个模拟器中加载此SD卡?我不想一直为每个模拟器重新创建SD卡上的所有数据.

解决方法

得到它了.

android工具在用户主文件夹中创建一个.android文件夹.此文件夹包含一个avd文件夹,其中存在每个虚拟设备的单独文件夹.在每个文件夹中都应该存在一个名为sdcard.img的文件.此文件包含此AVD自动创建的SD卡图像.

android Howto“真的”获得sd卡文件的mime类型

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 \”); 那是这样做的方式吗?     

解决方法

问题将始终是双重的。首先,Android决定使用content:// uri意味着我们必须处理该问题,并使用file:// uri。其次,没有任何mime标识符类可以覆盖整个领域。 因此,如果您只处理一些奇怪的mime类型,则必须自己测试mimetypemap或其他标识符类是否起作用。如果您像我一样使用文件管理器类型的应用程序,则可能会发现创建一个按文件uri然后按内容uri检查然后进行自己的分析的类比较容易。这样,您可以随着时间调整结果,并在大多数情况下克服上面的两个基本问题。 我敢肯定,原来的海报已经弄清楚了。但这可能会帮助将来的求职者。我认为对于独立开发人员来说,将文件处理驱动回规范posix file:// uri是很重要的。我们应该尽可能地处理Google诱导的content://。对他们来说,引入这些是一个可怜且动机错误的选择。     ,
MimeTypeMap
是您可以获得的最好的,然后其余部分继续手动建立哑剧类型。 我想知道3gp文件是如何解释为txt的?对我来说,它的哑剧类型为
video/3gp
。 然后,您可以确定是视频还是音频,然后进行相应播放。 但是“ 0”将减少您的大部分工作,这是正确的选择。     

Android MP3文件过滤表单SD卡

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卡,文件,文件夹工具

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卡,文件,文件夹工具等相关内容,可以在本站寻找。

本文标签: