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

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

  • 相关阅读:
    软件工程概论-用户登录界面
    2016.11.25异常处理
    2016.11.18多态
    2016.11.11继承与接口
    11.6数组
    10.28字符串加密等
    python 读写文件
    python可变的类型、不可变的类型
    python 字典练习 记录学生是否交作业的小程序
    python字典
  • 原文地址:https://www.cnblogs.com/sjyforg/p/3172568.html
Copyright © 2011-2022 走看看