1

ファイルがオーディオ( mp3aacなど)、ビデオ( mp4wmv3gpなど)、ドキュメント( txtrtfdocdocxxls、など)であるかxlsx、不明 (拡張子がなく、1 つのアプリケーションに固有のその他のカスタム拡張子がないか)を知りたい近い将来)ppthtml

Androidで実装する必要があります。ファイルの拡張子とその種類を特定できると思いますか? それとも、拡張子を知る必要はありませんか?

ファイルの種類を知りたいだけです。

4

5 に答える 5

1
import java.net.FileNameMap;
import java.net.URLConnection;

public class FileUtils {

public static String getMimeType(String fileUrl)
  throws java.io.IOException {
      FileNameMap fileNameMap = URLConnection.getFileNameMap();
      String type = fileNameMap.getContentTypeFor(fileUrl);

     return type;
}

public static void main(String args[]) throws Exception {
      System.out.println(FileUtils.getMimeType("file://c:/temp/test.TXT"));
     // output :  text/plain
   }
}

http://www.rgagnon.com/javadetails/java-0487.html

于 2012-09-24T08:21:12.837 に答える
0

mime-utilライブラリを使用できます。私のサンプルコードは、ファイルのmimeタイプを取得します。

    String imagePath = "/tmp/test.txt";
    File file = new File(imagePath);

    if (MimeUtil.getMimeDetector(MagicMimeMimeDetector.class.getName()) == null)  {
        MimeUtil.registerMimeDetector(MagicMimeMimeDetector.class.getName());
    }
    Collection<MimeType> mimeTypes = MimeUtil.getMimeTypes(file);
    for (MimeType mimeType : mimeTypes) {
        System.out.println(mimeType.getMediaType());
    }
于 2012-09-24T09:08:33.370 に答える
0

Android では、次のようなことを試すことができます。

File f = <YOUR FILE>

String path = f.getAbsolutePath();
String fileExtension = null;
int dotPos = path.lastIndexOf('.');
if (0 <= dotPos) {
    fileExtension = path.substring(dotPos + 1);
}

if (!TextUtils.isEmpty(fileExtension )) {
    String mime = MimeTypeMap.getSingleton().getMimeTypeFromExtension(fileExtension.toLowerCase());
    if (!TextUtils.isEmpty(mime)) {
        if (mime.startsWith("text")) {
        // TEXT FILE
        } else if (mime.startsWith("image")) {
        // IMAGE FILE
        }
    }
}
于 2012-09-24T07:51:11.287 に答える
0

を使用してファイル名拡張子からファイル タイプを推測するかguessContentTypeFromName()、または を使用して内容からファイル タイプを推測することができますguessContentTypeFromStream()

于 2012-09-24T07:51:13.070 に答える