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

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

  • 相关阅读:
    【白嫖】0002 11款 Procreate 皮肤纹理笔刷
    30款 Procreate 书法笔刷 你值得拥有
    PaddleHub(3)
    PaddleHub(2)
    关于大学学习的小思考
    PaddleHub(1)
    OO TA——一次非同寻常的体验
    Vue实现增加删除检索数据
    闲言碎语
    析 合 树 详 解
  • 原文地址:https://www.cnblogs.com/sjyforg/p/3172568.html
Copyright © 2011-2022 走看看