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

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

  • 相关阅读:
    C89和C99区别--简单总结
    C语言 值传递和地址传递
    对于.h文件和.c文件
    C语言-------多文件编译
    数据结构之第二章线性表
    数据结构之第一章一些概念
    JS-prototype的掌握
    JS-return的使用
    分分钟搞懂JS-闭包函数
    JS-面向对象-封装
  • 原文地址:https://www.cnblogs.com/sjyforg/p/3172568.html
Copyright © 2011-2022 走看看