zoukankan      html  css  js  c++  java
  • Java 7新方法probeContentType的C#实现方式

    在Java 7中增加了新的一个方法——probeContentType,其主要作用是可以判断文件的content type。相应代码如下所示:

    import java.io.IOException;
    import java.nio.file.Files;
    import java.nio.file.Path;
    import java.nio.file.Paths;
    public class FileContentType {
        public static void main(String[] args) {
            
            printContentType("D:/Downloads/java.txt");
            printContentType("D:/Downloads/java.ppt");
            printContentType("D:/Downloads/java.doc");
            printContentType("D:/Downloads/java.avi");
        }
        private static void printContentType(String pathToFile) {
            
            Path path = Paths.get(pathToFile);
            String contentType = null;
            try {
                contentType = Files.probeContentType(path);
            } catch (IOException e) {
          
                e.printStackTrace();
            }
            System.out.println("File content type is : " + contentType);
        }
    }
    

     在C#中没有对应的方法,不过要实现同样的功能并不困难。

    using System;
    using System.IO;
    using Microsoft.Win32;
     
    namespace Demo
    {
        class Program
        {
            static void Main(string[] args)
            {
                PrintContentType("D:/Downloads/java.txt");
                PrintContentType("D:/Downloads/java.ppt");
                PrintContentType("D:/Downloads/java.doc");
                PrintContentType("D:/Downloads/java.jar");
     
                Console.ReadKey();
            }
     
            private static void PrintContentType(string pathToFile)
            {
                string result = string.Empty;
                string ext = Path.GetExtension(pathToFile);
                using (RegistryKey registryKey = Registry.ClassesRoot.OpenSubKey(ext))
                {
                    if (registryKey != null)
                    {
                        var value = registryKey.GetValue("Content Type");
                        result = value == null ? "null" : value.ToString();
                    }
                }
                Console.WriteLine(result);
            }
        }
    }
    

     因为相关的content type信息其实都可以从注册表中取得,故而只需要对注册表做一点操作,即可以达到同样的功能。

    原文同步发布于我的个人博客

  • 相关阅读:
    Nginx Rewrite详解
    linux下面mysql的基本命令
    通过淘宝的rubygems镜像,安装rubygems
    PHP 调用函数时,函数名称前面加@的作用
    mysql5.5中 host的值为::1
    CentOS 6.2编译安装Nginx1.2.0+MySQL5.5.25+PHP5.3.13+博客系统WordPress3.3.2
    ruby数组方法concat和push的区别
    PHP 的时间格式
    EOF与getchar
    控件台版/MFC版本的简单生日提醒软件及源码
  • 原文地址:https://www.cnblogs.com/sjyforg/p/3172568.html
Copyright © 2011-2022 走看看