如何获取文件的文件类型

2024-03-30

有没有办法让VB.net中的Windows资源管理器中显示的文件类型

例如,在 Windows 资源管理器的详细信息视图中可以看到



Name          Date Modified           Type                           Size
A.PDF         05/06/2017 5:54PM       Adobe Acrobat reader           150kb
B.DOCX        05/06/2017 5:00PM       Microsoft Word Document        100kb
etc.
  

我想得到类型。我似乎无法找到到达那里的方法。感觉这应该是很容易的事。

Dim infoReader As System.IO.FileInfo
infoReader = My.Computer.FileSystem.GetFileInfo(txtFileName.Text)

FileInfo 获取修改后的数据和文件大小......但不是类型。

感谢论坛帮助!

。 IE。对于 .pdf 文件,显示为“adobe acrobat 文档”。 .xls 文件将显示“Microsoft Excel 工作表”


您可以使用下面的 VB.net 代码来获取文件类型描述。基本上你必须使用SH获取文件信息API 来获取该信息。

Imports System.Runtime.InteropServices

Module Get_File_Type

Sub Main()
    Dim info As New NativeMethods.SHFILEINFO()

    Dim fileName As String = "C:\TEST\TEST.xlsx"
    Dim dwFileAttributes As UInteger = NativeMethods.FILE_ATTRIBUTE.FILE_ATTRIBUTE_NORMAL
    Dim uFlags As UInteger = CUInt(NativeMethods.SHGFI.SHGFI_TYPENAME Or NativeMethods.SHGFI.SHGFI_USEFILEATTRIBUTES)

    NativeMethods.SHGetFileInfo(fileName, dwFileAttributes, info, CUInt(Marshal.SizeOf(info)), uFlags)

    Console.WriteLine(info.szTypeName)
    Console.ReadLine()
End Sub

End Module

NotInheritable Class NativeMethods
    Private Sub New()
    End Sub
    <StructLayout(LayoutKind.Sequential)> _
    Public Structure SHFILEINFO
        Public hIcon As IntPtr
        Public iIcon As Integer
        Public dwAttributes As UInteger
        <MarshalAs(UnmanagedType.ByValTStr, SizeConst:=260)> _
        Public szDisplayName As String
        <MarshalAs(UnmanagedType.ByValTStr, SizeConst:=80)> _
        Public szTypeName As String
    End Structure

    Public NotInheritable Class FILE_ATTRIBUTE
        Private Sub New()
        End Sub
        Public Const FILE_ATTRIBUTE_NORMAL As UInteger = &H80
    End Class

    Public NotInheritable Class SHGFI
        Private Sub New()
        End Sub
        Public Const SHGFI_TYPENAME As UInteger = &H400
        Public Const SHGFI_USEFILEATTRIBUTES As UInteger = &H10
    End Class

    <DllImport("shell32.dll")> _
    Public Shared Function SHGetFileInfo(pszPath As String, dwFileAttributes As UInteger, ByRef psfi As SHFILEINFO, cbSizeFileInfo As UInteger, uFlags As UInteger) As IntPtr
    End Function
End Class
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何获取文件的文件类型 的相关文章

  • 使用 VB.Net 的 GhostText

    大家好 我尝试创建一个幽灵文字在文本框上使用标签 我使用的是VB Net2005 我用这段代码完成了这个 Public Class frmDataEntry Private Sub PhantomTextLastName If txtLas
  • 移动文件并覆盖[重复]

    这个问题在这里已经有答案了 即使同名文件已存在 我也尝试移动文件 NSFileManager moveItemAtURL location1 toURL location2 Does NSFileManager的方法moveItemAtUR
  • 如何在一列中存储数组或多个值

    运行 Postgres 7 4 是的 我们正在升级 我需要将 1 到 100 个选定项目存储到数据库的一个字段中 98 的情况下 只会输入 1 个项目 而 2 的情况下 如果是这样的话 会输入多个项目 这些项目只不过是文本描述 截至目前 长
  • VB.NET 是否优化字符串文字的串联?

    如同this https stackoverflow com questions 288794 does c optimize the concatenation of string literals问题 但对于 VB NET 来说 因为我
  • 如何手动推断表达式的类型

    给定 Haskell 函数 head filter fst 现在的问题是如何手动 手动 找到类型 如果我让 Haskell 告诉我我得到的类型 head filter fst Bool b gt Bool b 但我想了解仅使用所用函数的签名
  • 打开文件路径在 python 中不起作用[重复]

    这个问题在这里已经有答案了 我正在编写一个数据库程序 personica 是我的测试主题 我通常在文件路径的位置有一个变量 但出于测试和演示的目的 我只有一个字符串 在我的计算机上的这个确切位置有一个文本文件 顺便说一句 因为我很偏执 所以
  • 命令式代码与声明式代码[关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 我试图理解命令式范例和声明式范例之间的区别 因为我必须对 Visual Basic 进行分类 NET 在不同的范式中 除了面向对象之外
  • 将列表(对象)转换为列表(字符串)

    有没有办法转换List of Object to a List of String 在 c 或 vb net 中而不迭代所有项目 幕后迭代很好 我只想要简洁的代码 Update 最好的方法可能就是进行新的选择 myList Select f
  • FileReader 在 Ionic 2 中未触发 onloadend

    我正在尝试使用 cordova file plugin 读取本地文件 目前我可以读取本地目录的内容并选择单个文件 但我在获取文件内容时遇到问题 这是我的函数 从列表中选择文件后单击按钮即可调用该函数 import window resolv
  • 特殊名称属性还允许哪些其他巧妙的技巧?

    研究中一个问题 https stackoverflow com questions 13259162 vb net power operator overloading from c sharp关于实现 Visual Basic Power
  • 我刚刚在 Visual Basic 中运行的 COM 对象的 CLSID 是什么

    我需要知道我刚刚运行的 COM 对象的 CLSIDCreateObject xxx xxx 我怎么才能得到它 蒂亚 拉法尔 我认为您无法直接从 VB 本身获取该信息 例如 作为调用的副作用或次要结果 CreateObject 但你可以阅读注
  • 调用退出后应用程序未退出

    我有一个小问题 我似乎无法弄清楚 我正在将 DataGridView 它的内容 保存到 xls 文件中 我这样做没有任何问题 除了在我的任务管理器中它仍然显示它正在运行 我已致电 xlApp Application Quit 这被声明为 D
  • 从空白启动时 VSTO 功能区不显示解决方案

    如果我从 文件 新建项目 菜单创建一个新的 Excel 2013 和 2016 VSTO 加载项 项目 然后单击 项目 添加新项目 gt 功能区 可视化设计器 则一切正常 我启动了应用程序 我的功能区显示在 Excel 中 但是 如果我首先
  • 具有上限的联合类型

    我正在遵循这个问题的公认答案中提出的技术如何定义 类型析取 联合类型 https stackoverflow com questions 3508077 does scala have type disjunction union type
  • Java 泛型 - 重写抽象方法并具有子类的返回类型

    我正在尝试创建一个设置 其中一组子类覆盖超类 这个超类包含一个抽象方法 理想情况下 其返回类型是调用该方法的对象的返回类型 这样它的有效行为如下 public abstract class SuperClass public abstrac
  • 在 C 中如何将一种类型的变量更改为另一种类型?

    我要做 int main bla bla bla void onetype switch USER INPUT TYPE CASE CONVERT TO CHAR convert onetype VOID TO CHAR gt gt gt
  • 由于继承抽象类而禁用设计器?

    我有一个项目的解决方案 那个项目中有 40 或 50 种形式 我制作了 4 个基本形式 所有其他形式都可以继承 所有 4 个基本表单都继承 System Windows Forms Form 几乎 90 的形式继承了前 2 个基本形式之一
  • c# - 如何列出硬盘上的所有文件和文件夹?

    我想列出我的程序有权访问的所有文件和文件夹并将它们写入文本文件 我如何获得该列表 我需要一种方法来捕获或不对不可访问的文件夹抛出 UnauthorizedAccessExceptions 请尝试使用代码 private static IEn
  • 动态创建和下载Doc文件

    因此 我尝试动态创建 doc 文件并让用户在单击按钮时下载该文件 这些是我找到的用于下载文件的标头 header Content Description File Transfer header Content Type applicati
  • 如何使用 winforms 在 vb.net 中制作大型按钮网格(24x20 或类似)?

    我正在 vb net WinForms 中制作一个座位预订系统 我需要用户能够选择他们想要使用的座位并改变颜色 这样他们就可以知道它已选择 我开始尝试使用按钮 但 480 个按钮严重减慢了表单的加载时间 然后我尝试了在行 列中带有按钮的数据

随机推荐

  • Travis-CI“Android 28 许可证尚未被接受”

    我正在尝试使用 Travis 构建 android 项目android 28 and build tools 28 0 0但无论我做什么我都会得到 gt Failed to install the following Android SDK
  • Excel VBA SQL - 多个数据源

    我有一个相当简单的问题 我找不到答案 我有以下 SQL Select a from filea where a in select b from fileb 我正在尝试使用 VBA 在 Excel 中运行它 我遇到的问题是 filea 是
  • WordPress 导航栏中的自定义短代码

    我只想在我的 WordPress 主题菜单栏中添加一个短代码按钮来处理bootstrap modal view功能 我试过 Shortcodes in Menus 插件 但它不起作用 我在菜单中找不到短代码的替代插件 所以我安装了 Boot
  • 验证 FRAMA-C 中的矩阵转置函数

    我有一个简单的矩阵转置函数 我想用后置条件来验证它 matrix transpose matrix transpose original matrix original matrix 其语法是什么 我试过了 ensures result r
  • shell32 copyhere 在.Net 和 powershell 脚本中都不起作用

    有一个 powershell 脚本可以通过 MTP 以编程方式在 PC 和 Android 之间复制文件 请参阅针对 mtp 连接访问文件系统 http www pstips net access file system against m
  • PHP GET 变量数组注入

    我最近了解到可以将数组注入 PHP GET 变量来执行代码 php a asd a asdasd b a 这就是我得到的例子 我不知道它是如何工作的 并且想知道这是否可能 PHP 将解析查询字符串 并将这些值注入到 GET超全局数组 同样适
  • 如何在 VB NET 中读取控制台缓冲区?

    我见过一个使用 ConsoleRead API 函数的 C 示例 但是当我尝试将其转换为 VBNET 时 出现了很多错误 在其他网站 如 pinvoke 中 独特的示例也是针对 C 的 我找不到任何好的示例ConsoleRead API 函
  • 可展开的树形菜单列表

    我想要实现的目标如下 我想要一个树视图列表 它将出现在页面的左侧 当展开一个项目时 它的项目是从数据库加载的 我可以做这部分 所以基本上它会像这样 Category1 Category2 Category3 Category4 当用户点击
  • 我可以让 clang 对 Objective-C 文字对象使用自定义类吗?

    gcc 文档参考了 fconstant string class http gcc gnu org onlinedocs gcc Constant string objects html参数 它允许您更改用于的类 Objective C s
  • PrintWriter 未打印出完整的字符串

    我有以下代码 FileWriter F new FileWriter out txt PrintWriter H new PrintWriter F H print split split length 2 H print END 然而 当
  • 如何在 TinyMCE 中允许自闭合标签?

    我的视频元素内的源标签需要自动关闭 这样 iPad 才不会开始抱怨 我输入
  • 如何在 android 的 logcat 中查看数组

    我想在 logcat 中记录原始数据 例如数组 这样我就知道输出是什么 假设我有一个数组 就像这样 File mp3List Log v test mp3List 为什么我不能将数组记录到控制台 我该怎么做 您无法记录该数组 因为它只是一个
  • unix/linux 套接字中的阻塞模式如何工作?

    阻塞模式是否将该特定任务置于 进程等待 状态 因为我认为非阻塞套接字需要用户明确的 忙等待 或 自旋锁 实现 或者阻塞模式套接字只不过是内核忙等待的隐式实现 在信号量 互斥体 监视器等锁定机制中 通常通过将任务推入阻塞状态来实现锁定 我认为
  • Zapier:修改 webhook 侦听器 HTTP 响应?

    某些 API 需要 Webhook 侦听器响应中的附加信息 例如 我正在尝试订阅 Outlook com 的推送通知服务 该服务描述了以下流程 Outlook 通知服务尝试使用侦听器服务验证通知 URL 它在验证请求中包含验证令牌 如果侦听
  • Google REcaptcha 未显示

    我的中有以下内容 div class g recaptcha 这在我的 但无论是在 Firefox 还是 Chrome 上都没有显示任何内容 这是一个已知问题吗 确保是 head 标签关闭之前的最后一件事 这为我解决了同样的问题 div
  • 工具提示问题,MatTooltip 在 Angular 中不起作用

    我正在尝试在仪表板页面中插入通知工具提示 但该工具提示不起作用 我对 Angular 非常陌生 因此任何有关此问题的线索都将受到高度赞赏 module ts import MatTooltipModule from angular mate
  • find 命令仅搜索非隐藏目录

    在以下命令中 我只想搜索非隐藏的目录 如何使用以下命令执行此操作 我想在搜索日志文件时忽略隐藏目录 find home tom project name log txt ls home tom project dir1 dir2 backu
  • JAXB 绑定嵌套元素

    我正在使用 JAXB impl 我需要能够将嵌套元素作为简单类型映射到类字段 例如
  • 在 JavaScript 中使用 for..of 迭代时从数组中删除元素应该是安全的吗?

    我知道它适用于Set 但我的印象是它也可以与 Array 一起使用 所以我在 Chrome 中尝试了一下 很惊讶它不起作用 const array 1 2 3 4 5 6 for const item of array if item 3
  • 如何获取文件的文件类型

    有没有办法让VB net中的Windows资源管理器中显示的文件类型 例如 在 Windows 资源管理器的详细信息视图中可以看到 Name Date Modified Type Size A PDF 05 06 2017 5 54PM A