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信息其实都可以从注册表中取得,故而只需要对注册表做一点操作,即可以达到同样的功能。

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

  • 相关阅读:
    给入门程序员的一些学习建议(一定要看)
    拦截器工作原理
    Struts 2中如何解决中文乱码问题?
    struts1与struts2的区别。
    MVC是什么?
    spring MVC工作原理
    C#中,子类构造函数调用父类父类构造函数的正确方式
    泛型的优点
    jsp的page、request、session、application四个作用域的作用
    jsp转发与重定向的区别
  • 原文地址:https://www.cnblogs.com/sjyforg/p/3172568.html
Copyright © 2011-2022 走看看