导航:首页 > 设备说明 > 打开文件过滤设备

打开文件过滤设备

发布时间:2022-09-25 23:30:11

⑴ 亲们谁知道CDR打开文件时提示说使用选定的过滤器无法导入该文件,或者不支持该格式!是什么情况啊

有可能你低版本打开高版本CDR文件,这样也会出现类似提示,另外一个就是其他格式,CDR不能直接打开(部分是需要导入才能显示),也会出现此类情况。

⑵ 用CorelDRAW打开CDR文件提示过滤器错误或不支持此种格式(CorelDRAW9.0)

Cdr软件只有高版本软件打开低版本格式,低版本软件是无法打开高版本文回件答的,所以打开文件时会提示错误或者不支持格式。


例如想用Cdr9打开比它高的版本文件,就需要先让别人用高版本软件,例如Cdr X4打开文件,然后另存为cdr格式时,在版本那里选择9.0版本。

⑶ VC 中如何获得文件打开/保存对话框中的当前选定的类型过滤器

这个可以:
CString filter_str = "txt files (*.txt)|*.txt|word files (*.doc)|*.doc||";
CFileDialog mSaveDlg(FALSE,NULL,NULL,NULL,filter_str,NULL);//初始化
mSaveDlg.DoModal();//显示

DWORD filter_num = mSaveDlg.m_ofn.nFilterIndex;//返回的是当前选择的文件类型是第几个
filter_num -= 1;//适应数组
char a[][9] = {".txt",".avi",""};//文件类型数组

CString file_ext = a[filter_num];//获得文件类型的名称
int ext_length = file_ext.GetLength();//获得长度

⑷ MFC的文件对话框过滤器怎么设置

CFileDialog::CFileDialog

CFileDialog(BOOL bOpenFileDialog,
LPCTSTR lpszDefExt = NULL,
LPCTSTR lpszFileName = NULL,
DWORD dwFlags = OFN_HIDEREADONLY | OFN_OVERWRITEPROMPT,
LPCTSTR lpszFilter = NULL,
CWnd* pParentWnd = NULL
);

参数: bOpenFileDialg 如果为TRUE, 则创建文件打开对话框;如果为FALSE,则构造一个File Save As(另存为)对话框。
lpszDefExt 缺省文件扩展名,如果用户在文件名编辑框中不包含扩展名,则lpszDefExt定义的扩展名自动加到文件名后。如果为NULL,则不添加扩展名。
lpszFileName 初始显示于文件名编辑框中的文件名,如果为NULL,则不显示初始文件名。
dwFlags 一个或多个标志的组合,使你可定制对话框。要了解这些标志的描述,可参阅联机文档“Win32 SDK”中的OPENFILENAME结构。如果你改变m_ofn.Flags结构成员,在改变中用OR操作保持缺省行为完整。
lpszFilter 一列字符串对,指定可以应用到文件的过滤器。如果指定过滤器,仅被选择的文件显示于文件列表框中。请参阅说明部分,了解如何使用过滤器。
pParentWnd 指向文件对话框对象的父窗口或拥有者窗口。

说明:
调用此成员函数构造一个标准Windows文件对话框对象,或构造一个打开对话框或构造一个存盘对话框,根据bOpenFileDialog的值决定。
OFN_ALLOWMULTISELECT标志。你应提供文件名缓冲区来放置返回的多个文件名的列表,这通过用一个分配了的缓冲区指针替换m_ofn.lpstrFile来实现,要在创建了CFileDialog之后调用DoModal之前进行此操作。另外,必须用m_ofn.lpstrFile指向的缓冲区字节数来设置m_ofn.nMaxFile。
为使用户用鼠标或键盘改变一个Explorer风格对话框的大小,设置OFN_ENABLESIZING标志,这仅当你提供一个钩子进程或定制模板时才有必要设置。此标志仅与一个Explorer风格的对话框一起工作,旧风格的对话框不可改变大小。
lpszFilter参数用于判断文件名类型及文件列表框中哪些可被显示。双字符串的第一个字符串描述过滤器,第二个串表明使用的文件扩展名,多重扩展可用“;”来指定。字符串由两个“|”字符结尾,最后是一个NULL。也可使用CString对象作为参数。
例如,Mirosoft Excel 允许用户用.XLC扩展名(表)或.XLS(工作表)打开文件,Excel过滤器应如下:
static char BASED_CODE szFilter[] =
"Chart Files (*.xlc)|*.xlc|Worksheet Files (*.xls)|*.xls|Data Files (*.xlc;*.xls)|*.xlc; *.xls|All Files (*.*)|*.*||";

⑸ coreldraw12打开某coreldraw文件时显示使用选定的过滤器无法导入怎么解决

1、首先,启动CorelDRAW软件。


⑹ 在Pro/E中打开unigraphics文件时,如何选取“Unigraphics(*.prt)”过滤器

proe可以直接打开ug的文件,不过是需要一个license还要安装ug。

如果只需要在Proe中打开用UG画的三维图的话,需要先在UG里面将模型导出为IGES格式的文件,这样就可以用PROE打开查看了。

这不是什么UG过滤器,是自己的文件使用UG画的所以要用UG软件打开。UG的文件扩展名也是.PART,所以PROE能认得但打不开。可以装个UG软件,或者叫别人转成.IGS或者.STP的文件再发给自己。

(6)打开文件过滤设备扩展阅读:

Unigraphics 接口要求 NX3 或 NX4 和 Pro/ENGINEER 许可证。通过网络服务器在本地工作站上安装或运行 NX3 或 NX4 和 Pro/ENGINEER。但它们必须安装在相同的平台中。

使用 Unigraphics 接口,可将零件和组件输出为 Unigraphics 格式,或从 Unigraphics 格式输入零件和组件。转换器支持输入和输出中几何、组件结构、颜色和层的转换。

如果连接到一个 NX3 安装,可读取 NX3 及早期数据和只写e799bee5baa6e997aee7ad94e 78988e69d8331333337613865入 NX3 数据。

如果连接到一个 NX4 安装,可读取 NX4 及早期数据和只写入 NX4 数据。Unigraphics 是一种启用"关联拓扑母线"(ATB) 的格式。请参阅有关"关联拓扑母线"的"帮助"。

⑺ coreldraw打开文件提示过滤器无法导入是怎么回事

答:如果是用Coreldraw
打开
Coreldraw格式的文件时发生问题,请使用下列方法,确认是否专可打开属文件。
1.
建立新文件。
2.
单击菜单:检视-框架。
3.
使用
CoreldrawR
过滤器输入文件。
或者,使用(Media)文件夹转换文件格式为
CMX
格式
(可在安装Coreldraw
时,
要自定义安装Media文件夹)。
如果用
Corel
PHOTO-PAINT打开此文件,Coreldraw文件将会将此图位图化)。
或者可以试试在Macintosh计算机上,尝试打开PC
文件
(或在
PC
上打开Macintosh文件)。
这些诀窍可解决打开那些含错误填色、样式或字体信息的Coreldraw文件的问题。这些信息毁损的方式有很多种,最常见的是系统的资源不足和尚未执行最佳化或维护。大部分毁损或无法开启文件的问题,唯一可解决的方式是将文件还原到前一次的备份,所以备份文件的重要性不言可喻。

⑻ 电脑中的过滤器在哪找

ve File Recovery
一个简单易用、功能超强的数据恢复工具,使用它可以恢复在 Windows 中丢失或删除的文件和文件夹。它不仅可以恢复分区格式化或丢失后的数据,而且可以恢复被损坏、病毒或目录结构导致丢失的数据。所有类型的硬盘驱动器:IDE、ATA、SCSI 和软盘;可移动设备:CompactFlash、SmartMedia、Secure Digital/MultiMediaCard、Sony Memory Sticks 等;

格式化恢复:无
速度很快,只有一种扫描方式,对中文支持不好,带中文名字的文件大多无法恢复(中文和英文结合时,如果中文在前,无法恢复;如果英文在前,可恢复,丢失中文部分),中文Word文档恢复后部分成乱码。扫描到的文件以原来目录结构方式显示。

2 Drive Rescue 1.9d
一款优秀而且免费的磁盘数据拯救程序,它能恢复驱动器(例如硬盘)上误删或遗失的数据,即使已经失去分区表或硬盘已被快速格式化或者遭遇系统崩溃等情况,找回驱动器重要文件系统信息如分区表、引导记录、FAT、文件/目录记录等。当然对于物理损坏的硬盘它也无能为力。Drive Rescue支持FAT 12/16/32分区和Windows全系列操作系统以及双硬盘。

格式化恢复:无
功能一般,扫描速度中等,扫描效果还不错,对中文和特殊字符文件名的文件都能够很好的支持。恢复时要到菜单里选择保存,或者用Ctrl+S。特色是能够查找丢失的分区并修复。

3 DISKCOMMAND
Winternals公司的又一款力作。它是基于WINNT内核平台的数据恢复软件,支持FAT16/FAT32/NTFS,支持SCSI、RAID,支持长文件名,还可以恢复NTFS加密的软件,可以说,只要硬盘主数据区没被破坏,无论分区表有无,或者损坏的多么严重,他都可以完整的恢复几乎所有的文件,即使文件区被损坏,也能把剩下的部分,恢复到不同程度,这个是其他软件无法做到的。

格式化恢复:无
这个软件没有单独发行版本,是包含在ERD系统里的恢复软件,当年做光盘时专门测试过它。扫描速度还不错,可以选择扫描已经删除的文件,或者是丢失或损坏的文件,操作比较傻瓜化。对中文以及深层目录支持的比较好,可以恢复到最原始的状态。

4 Filerecoveryangel
一款文件恢复工具,它能够帮助你从格式化成FAT12、FAT16、FAT32、NTFS文件系统的磁盘中恢复被删除的文件。它不仅仅可以针对硬盘进行文件恢复,它还很好地适用于软盘、数码相机、USB驱动器、ZIP盘、CompactFlash卡、SmartMedia,以及索尼记忆棒。

格式化恢复:无
所有测试软件中唯一一个不让选择磁盘的软件,运行后直接对所有磁盘进行扫描,虽然速度比较快,但大硬盘也够郁闷的,不知道作者是怎么想的。

5 FileRescueNTFS
一款易于使用而用强大的软件工具,它可以恢复意外删除的文件和文件夹。它使你能够恢复从回收站删除的文件,以及那些不经过回收站而直接删除的文件(例如使用Shift+Delete键删除的文件)。它还可以恢复由于病毒攻击和软件错误而删除的文件。

格式化恢复:无

6 Recover4all
每个人一定都有曾不小心误删档案与目录的经验,通常要恢复误删档案有时是相当困难的,不妨先试试 Recover 4 all 看看,它能将刚刚所删除的档案找出来,但必须在 Windows 下所删除的文件,它才能找出并挽救回来。该版本可以运行于 Win9x/Me/NT/2000/XP 等操作系统下,帮助你在这些操作操作中恢复删除的文件。

格式化恢复:无
不知道这个软件当年怎么那么流行,几乎所有恢复软件评测中都有它的身影,但是现在在众多的恢复软件中,它已经显得有些吃力甚至落伍了。另外它注册后还需要激活,没有找到激活码。

7 RecoverItAllPro
大概是体积最小的文件恢复软件了,几百 KB 的体积让您轻松将它保存在软盘中便于携带。通过它,您可以尽可能地挽救硬盘中误删除的文件。软件支持快速逻辑扫描和慢速逻辑扫描两种模式,并可以恢复文件所在的目录;您也可以通过过滤器查找指定类型的文件。

格式化恢复:无

8 SmartUndelete
一款强大的数据恢复软件,能有效的找回已被删除的文件。易于使用,巧妙的恢复被删除的文件,甚至是那些你认为无法挽救的损失。

格式化恢复:无

9 UnErase
让恢复被删除的数据变得易如反掌。在帮助系统的指导下,用户能够恢复更多的文件。O&O UnErase 只需要用户点击鼠标就能够帮助寻找回被删除的文件。同时还能够恢复文件名和目录结构。

格式化恢复:无
扫描的速度非常快,而且能够很好的保持原有目录结构,恢复出来的文件也很少出错,但只能扫描出没有被改动的文件。

10 VideoRescue Pro
用来恢复丢失的视频数据的工具,该程序能够从多种设备(USB,FireWire, Palm Pilots, Windows CE devices, Digital Cameras,Digital Camcorders, and certainly from Hard Drives,FlashPath Adaptors, CompactFlash cards (type I/II), IBM Microdrives, SmartMedia cards, MultiMedia cards (MMCs),Secure Digital (SD) cards and Memory Sticks)中恢复数据,支持的文件格式有MPEG, AVI, DVD, WMV, MOV, ASF等。

格式化恢复:无
只支持常见影音格式文件的恢复,速度奇慢。

--------------------------------------------------------------------------------

二、只恢复媒体文件

1 MediaRecovery

你丢失了来自你的婚礼,你的孩子或去年假期的不能替代的照片吗?不要惊慌--即将帮助! O&O MediaRecovery仅按一下按钮就可以恢复删除图片,录象和音乐数据!

连接数据存储介质把删除数据(例如:你的数码相机)保存到你的电脑。

安装O&O MediaRecovery在你的电脑上并且开始编程。助理将指导你一步步通过数据搜索。

特色:

1、预览先前恢复的文件

2、你的数码照片和MP3的最佳恢复

3、认可和恢复的文件类型超过80个

4、即使文件已被损坏或软件故障,也可恢复存储介质上的数据

格式化恢复:有

只支持图片和影音文件,扫描结果文件以格式归类显示,扫描结果格式化改名,支持图片预览。不支持目录结构恢复。

恢复后文件状态:正常

2 MediaRescue Pro

能够将你的数字视频数据、音频数据进行恢复的工具,包括硬盘数据、闪存卡、MP3、WMA、PDAs、手机、MMCs卡、SD卡等里的数据。并能储存和添加其他文件格式包括:JPEG, AVI, MOV,MP3, WMA, WAV等

格式化恢复:有

虽然以图片和影音文件恢复位主,但提供了其他文件格式的选择(自定义后缀名)。不知道是什么原因,扫描过程中出现内存读取错误,只能恢复极个别文件。扫描结果文件以格式归类显示,扫描结果格式化改名。

3 ObjectRescue Pro

能够将你的数字视频数据、音频数据、MP3和WMA数据进行恢复的工具,包括硬盘数据、闪存卡、MP3、WMA、PDAs、手机、MMCs卡、SD卡等里的数据。并能储存和添加其他文件格式包括:DOC, XLS, ZIP,AR,JPEG, AVI, MOV,MP3, WMA, WAV等。

格式化恢复:有

同上,不知道是什么原因,扫描过程中出现内存读取错误,只能恢复极个别文件。扫描结果文件以格式归类显示,扫描结果格式化改名。

4 PhotoRescue Pro

数码照片恢复专家:这个软件可以恢复数码照相机,手机,PDA等多媒体设备中丢失的数据。这个软件也支持从CD,DVD,硬盘恢复,并可以从CompactFlash卡, IBM Microdrives, SmartMedia 卡, MultiMedia 卡,记忆棒中恢复文件。支持诸如:jpg、gi、crw、bmp、tiff、mpg、png等格式的文件。

同上,不知道是什么原因,扫描过程中出现内存读取错误,只能恢复极个别文件。扫描结果文件以格式归类显示,扫描结果格式化改名。

5 Recover My Photos

Recover My Photos是一款功能极强的数据恢复程序,可以恢复在硬盘、闪存、存储棒、软盘等地方被删除的图片或多媒体文件,包括JPEG, NEF, TIFF, BMP, MOV, MPEG,和WAV等文件。可以对Flash闪存卡、记忆棒、Smart卡或其他存储器进行数据恢复,还包括PC的磁盘驱动器。

格式化恢复:有

以图片恢复为主,同时支持常见影音文件的恢复,速度与效果都相当好。支持图片预览。

恢复后文件状态:正常

--------------------------------------------------------------------------------

三、可恢复格式化后的分区文件

1 DiskRecovery 技术版

网络介绍:
O&O DiskRecovery v4.0 O&O DiskRecovery是一款独具特色的存贮设备数据恢复软件,能直接恢复硬盘、存储卡、数码相机中的文件,只要没有被重复填写数据,即时已经进行了格式化,O&O DiskRecovery也能救你于水火。能辨别修复包括Word 文档、Excel表格、Access数据库和各种常用图形、图像、电影、音乐(JPEG, AVI, MPEG,MP3, WAV, BMP, TIFF, Corel Draw, Photoshop, Framemaker,Adobe Illustrator, and many more)在内300余种文件格式。

测试点评:
格式化恢复:有,可恢复所有文件

比较有特色的是深度扫描功能,可以对不同文件系统和已格式化的分区进行扫描,恢复能力非常强。扫描结果以文件格式分类显示和恢复,而且重新格式化命名,对于普通用户来说比较不方便。删除分区后恢复出的文件大部分有错误。

恢复后文件状态:正常

2 EasyRecovery

网络介绍:

一款威力非常强大的硬盘数据恢复工具。能够帮你恢复丢失的数据以及重建文件系统。EasyRecovery 不会向你的原始驱动器写入任何东东,它主要是在内存中重建文件分区表使数据能够安全地传输到其他驱动器中。你可以从被病毒破坏或是已经格式化的硬盘中恢复数据。该软件可以恢复大于 8.4GB 的硬盘。支持长文件名。 被破坏的硬盘中像丢失的引导记录、BIOS 参数数据块;分区表;FAT 表;引导区都可以由它来进行恢复。

测试点评:

格式化恢复:有,可恢复所有文件

扫描速度比较慢,但是效果不错,而且能够修复已经损坏的Word和Zip等文件。扫描后的结果以单独目录方式显示和恢复(就是目录套目录时,会把所有目录平行的显示和恢复),不能做到深层目录的直接恢复。

恢复后文件状态:正常

3 File Rescue Plus

网络介绍:

Windows 专用的拯救删除文件的工具,File Rescue 可以将硬盘上删除的文件及资料找出并以清单显示所删除时的时间及所在目录或根目录,并让使用者选择是否拯救以删除的文件,拯救回来的文件可选择在原来所在目录或根目录储存恢复或储存到其它的目录或硬盘。

测试点评:

格式化恢复:有,可恢复所有文件

速度还可以,但扫描结果是以全部文件的方式显示,不能恢复目录结构。

恢复后文件状态:对中文Word文档支持不好,打开后为乱码。

4 File Scavenger

网络介绍:

能够恢复在NTFS格式下意外删除的文件工具,前提条件是所删除的硬盘尚未被改写新的文件上去才可以救回,提供了找寻文件类型功能,如*.doc及*.txt,能够救回的文件不只单一文件,还包括整个目录及压缩文件,也支持救回来的文件选择在原来所在位置恢复或储存到其它的硬盘。

测试点评:

格式化恢复:有,可恢复所有文件

速度不错,但扫描结果可以以全部文件的方式显示,也可以以目录方式显示。扫描结果以文件类型方式分类,不支持原始目录结构恢复。

恢复后文件状态:正常

5 FinalData Enterprise 2.0

网络介绍:

在Windows环境下删除一个文件,只有目录信息从FAT或者MFT(NTFS)删除。这意味着文件数据仍然留在你的磁盘上。所以,从技术角度来讲,这个文件是可以恢复的。FinalData就是通过这个机制来恢复丢失的数据的,在清空回收站以后也不例外。另外,FinalData可以很容易地从格式化后的文件和被病毒破坏的文件恢复。甚至在极端的情况下,如果目录结构被部分破坏也可以恢复,只要数据仍然保存在硬盘上。

测试点评:

格式化恢复:有,可恢复所有文件

速度非常的慢,扫描结果以文件类型方式以及全部方式两种方式显示,不支持原始目录结构显示及恢复。有特色的是支持常见格式的图片和文本等文件的预览。

恢复后文件状态:正常

6 FinalRecovery 2.0.3.1

FinalRecovery 是一款强劲的反删除软件。它能以极快的速度扫描您的硬盘、软盘或可移动磁盘,并迅速找出已被删除的文件和文件夹;如果您同时删除了多层目录及其中的文件,您还可以用深度扫描模式尽可能挖掘出目录中每一个可能被恢复的文件和文件夹。专业用户能使用高级恢复功能,通过软件查看文件分配表和簇中的数据将文件恢复。当然您也可以通过查找功能搜索特定的文件或文件夹。

测试点评:

格式化恢复:有,可恢复所有文件

速度非常快,扫描结果以目录方式显示,支持原始目录结构恢复。比较有意思的是它会把所有目录都显示出来,即下级目录和上级目录都平行显示。但不要被这个搞晕了,如果恢复所有目录的话,只要选择最顶层的结果即可,它会完全恢复原始目录结构。

恢复后文件状态:正常

7 FormatRecovery

网络介绍:

一款数据恢复软件,能够恢复被删除或格式化的数据。

测试点评:

格式化恢复:有

不支持中文目录及文件名,中文目录下的文件没有一个能扫描到的,更不要说恢复了。本来对这个软件抱很高期望的,结果让人大跌眼镜。

恢复后文件状态:正常

8 Handy Recovery

网络介绍:

Handy Recovery 操作简便的档案救援功能,让你可以在档案原始储存的数据夹路径上,找回被删除的档案,并同时支持 FAT12/16/32 以及 NTFS/NTFS 5 五种不同的磁盘格式。

测试点评:

格式化恢复:有

扫描速度一般,扫描结果文件以格式归类显示,扫描结果格式化改名。不支持目录结构恢复。有一个查找分区的功能,可以找到被删除的分区。

恢复后文件状态:正常

9 R-Studio

网络介绍:

R-Studio 是功能超强的数据恢复、反删除工具,采用全新恢复技术,为使用 FAT12/16/32、NTFS、NTFS5(Windows 2000系统)和 Ext2FS(Linux系统)分区的磁盘提供完整数据维护解决方案!同时提供对本地和网络磁盘的支持,此外大量参数设置让高级用户获得最佳恢复效果。具体功能有:采用 Windows资源管理器操作界面;通过网络恢复远程数据(远程计算机可运行Win95/98/ME/NT/2000/XP、Linux、UNIX 系统);支持 FAT12/16/32、NTFS、NTFS5 和 Ext2FS文件系统;能够重建损毁的RAID阵列;为磁盘、分区、目录生成镜像文件;恢复删除分区上的文件、加密文件(NTFS 5)、数据流(NTFS、NTFS 5);恢复FDISK或其它磁盘工具删除过得数据、病毒破坏的数据、MBR 破坏后的数据;识别特定文件名;把数据保存到任何磁盘;浏览、编辑文件或磁盘内容等等。

测试点评:

格式化恢复:有

速度和效果都不错,而且有图形化显示目标分区的状况(类似于磁盘整理时的显示)。扫描结果按照可识别文件和未识别文件分类,可恢复完整目录结构。

恢复后文件状态:正常

10 RecoverMyFiles

网络介绍:

RecoverMyFiles下载介绍:Recover My Files可以恢复由于冒失删除的文档,甚至是磁盘格式化后的文件恢复工具,它可以自定义搜索的文件夹、文件类型,以提高搜索速度及准确性节约时间。在搜索过程中,提供了大量的信息,包括:文件名、文件/目录、尺寸、相关日期、状态、对一般性文档可直接预览等,让你更好地选择要恢复的文件。

测试点评:

格式化恢复:有

深度扫描速度比较慢,但扫描效果相当好。支持图片、声音、文本、HTML等文件的预览。以格式分类,不支持目录显示和恢复。

恢复后文件状态:正常

11 Search and Recover 3

网络介绍:

用来恢复误删除的文件和文件夹的工具,支持多种存储介质,包括磁盘、Zip Disks, USB flash drives, Compact Flash等等。

测试点评:

格式化恢复:有

深度扫描速度非常慢,但扫描效果还可以。支持图片、声音的预览。无分类,所有文件统一显示,不支持目录恢复。特色功能是支持目录扫描,可以直接扫描某个目录内的文件。另外还可以按照时间、属性、大小等条件进行扫描。

恢复后文件状态:正常

12 易我数据恢复向导V2.0

网络介绍:

《易我数据恢复向导》是首款国内自主研发的数据恢复软件,是一款功能强大并且性价比非常高的数据恢复软件。本软件在WINDOWS操作系统下,提供FAT12/ FAT16/FAT32/VFAT/NTFS/NTFS5分区的数据恢复,支持IDE/ATA、SATA、SCSI、USB、IEEE1394种类的硬盘或闪盘、软盘、数码相机、数码摄像机和USB种类的存储盘。本软件具有删除恢复、格式化恢复、高级恢复等非常强大的功能,可以针对不同情况的数据丢失来进行数据恢复。本软件能非常有效的恢复删除或丢失的文件、恢复格式化的分区以及恢复分区异常导致丢失的文件。
易我数据恢复向导_a.jpg

测试点评:

格式化恢复:有

速度和效果都不错,支持目录结构恢复。

恢复后文件状态:正常
希望采纳

⑼ VC 如何设置默认生成的打开对话框的文件过滤器

这个可以:
CString filter_str = "txt files (*.txt)|*.txt|word files (*.doc)|*.doc||";
CFileDialog mSaveDlg(FALSE,NULL,NULL,NULL,filter_str,NULL);//初始化
mSaveDlg.DoModal();//显示

DWORD filter_num = mSaveDlg.m_ofn.nFilterIndex;//返回的是当前选择的文件类型是第几个
filter_num -= 1;//适应数组
char a[][9] = {".txt",".avi",""};//文件类型数组

CString file_ext = a[filter_num];//获得文件类型的名称
int ext_length = file_ext.GetLength();//获得长度

⑽ windows10文件驱动过滤

1、获得文件全路径以及判断时机

除在所有 IRP_MJ_XXX 之前自己从头创建 IRP 发送到下层设备查询全路径外,不要尝试在 IRP_MJ_CREATE 以外的地方获得全路径,因为只有在 IRP_MJ_CREATE
中才会使用 ObCreateObject() 来建立一个有效的 FILE_OBJECT。而在 IRP_READ IRP_WRITE 中它们是直接操作 FCB (File Control Block)的。

2、从头建立 IRP 发送关注点

无论你建立什么样的 IRP,是 IRP_MJ_CREATE 也好还是 IRP_MJ_DIRECTORY_CONTROL也罢,最要提醒的就是一些标志。不同的标志会代来不同的结果,有些结果是直接返回失败。这里指的标志不光是 IRP->Flags,还要考虑 IO_STACK_LOCATION->Flags还有其它等等。尤其是你要达到一些特殊目的,这时候更需要注意,如 IRP_MN_QUERY_DIRECTORY,不同的标志结果有很大的不同。

3、从头建立 IRP 获取全路径注意点

自己从头建立一个 IRP_MJ_QUERY_INFORMATION 的 IRP 获取全路径时需要注意,不仅在 IRP_MJ_CREATE 要做区别处理,在 IRP_MJ_CLOSE 也要做同样的处理,否则如果目标是 NTFS 文件系统的话可能产生 deadlock。如果是 NTFS 那么在 IRP_MJ_CLEANUP 的时候也需要对 FO_STREAM_FILE 类型的文件做同样处理。

4、获得本地/远程访问用户名(域名/SID)

方法只有在 IRP_MJ_CREATE 中才可用,那是因为 IO_SECURITY_CONTEXT 只有在 IO_STACK_LOCATION->Parameters.Create.SecurityContext 才会有效。这样你才有可能从 IO_SECURITY_CONTEXT->SecurityContext->AccessState->SubjectSecurityContext.XXXToken 中获得访问 TOKEN,从而进一步得到用户名或 SID。记得 IFS 中有一个库,它的 LIB 导出一个函数可以让你在获得以上信息后得到用户名与域名。但如果你想兼容 NT4 的话,只能自己分析来得出本地和远程的 SID。

5、文件与目录的判断

正确的方法在楚狂人的文档里已经说过了,再补充一句。如果你的文件过滤驱动要兼容所有文件系统,那么不要十分相信从 FileObject->FsContext 里取得的数据。正确的方法还是在你传递下去 IRP_MJ_CREATE 后从最下层文件系统延设备栈返回到你这里后再获得。

6、加/解密中判断点

只判断 IRP_PAGING_IO,IRP_SYNCHRONOUS_PAGING_IO,IRP_NOCACHE 是没错的。如果有问题,相信是自己的问题。关于有人提到在 FILE_OBJECT->Flags中的 FO_NO_INTERMEDIATE_BUFFERING 是否需要判断,对此问题的回答是只要你判断了 IRP_NOCACHE 就不用再判断 FILE_OBJECT 中的,因为它最终会设置 IRP->Flags 为 IRP_NOCACHE。关于你看到的诸如 IRP_DEFER_IO_COMPLETION 等 IRP 不要去管它,因为它只是一个过程。最终读写还是如上所介绍。至于以上这些 IRP 哪个是由 CC MGR 发送的,哪些是由 I/O MGR 发送和在什么时候发送的,这个已经有很多讨论了,相信可以找到。

7、举例说明关于 IRP 传递与完成注意事项

只看 Walter Oney 的那本 《Programming the Microsoft Windows driver model》里介绍的流程,自己没有实际的体会还是不够的,那里只介绍了基础概念,让自己有了知识。知道如何用,在什么情况下用,用哪种方法,能够用的稳定这叫有了技术。我们从另一个角度出发,把问题分为两段来看,这样利于总结。一个 IRP 在过滤驱动中,把它分为需要安装 CompleteRoutine 的与无需安装 CompleteRoutine 的。那么在不需要安装 CompleteRoutine 的有以下几类情况。

(1) 拿到这个 IRP 后什么都不做,直接调用 IoCompleteRequest() 来返回。
(2) 拿到这个 IRP 后什么都不做,直接传递到底层设备,使用IoSkipCurrentIrpStackLocation() 后调用 IoCallDriver() 传递。
(3) 使用 IoBuildSynchronousFsdRequest() 或 IoBuildDeviceIoControlRequest()来建立 IRP 的。

以上几种根据需要直接使用即可,除了一些参数与标志需要注意外,没有什么系统机制相关的东西需要注意了。那么再来看需要安装 CompleteRoutine 的情况。我们把这种情况再细分为两种,一是在 CompleteRoutine 中返回标志为STATUS_MORE_PROCESSING_REQUIRED 的情况。二是返回处这个外的标志,需要使用函数IoMarkIrpPending() 的情况。在 CompleteRoutine 中绝大多数就这么两种情况,你需要使用其中的一种情况。那么为什么需要安装 CompleteRoutine 呢?那是因为我们对其 IRP 从上层驱动,经过我们驱动,在经过底层设备栈返回到我们这一层驱动时需要得到其中内容作为参考依据的,还有对其中内容需要进行修改的。再有一种情况是没有经过上层驱动,而 IRP 的产生是在我们驱动直接下发到底层驱动,而经过设备栈后返回到我们这一层,且我们不在希望它继续向上返回的,因为这个 IRP 本身就不是从上层来的。综上所述,先来看下 IoMarkIrpPending() 的情况。

(1) 在 CompleteRoutine 中判断 Irp->PendingReturned 并使用 IoMarkIrpPending()然后返回。这种方法在没有使用 KeSetEvent() 的情况下,且不是自建 IRP 发送到底层驱动返回时使用。也就是说有可能我所做的工作都是在 CompleteRoutine 中进行的。比如加/解密时,我在这里对下层驱动返回数据的判断并修改。修改后因为没有使用 STATUS_MORE_PROCESSING_REQUIRED 标志,它会延设备堆一直向上返回并到用户得到数据为止。这里一定要注意,在这种情况下 CompleteRoutine返回后,不要在碰这个 IRP。也就是说如果这个时候你使用了 IoCompleteRequest()的话会出现一个 MULTIPLE_IRP_COMPLIETE_REQUEST 的 BSOD 错误。

(2) 在 CompleteRoutine 中直接返回 STATUS_MORE_PROCESSING_REQUIRED 标志。这种情况在使用了 KeSetEvent() 的函数下出现。这里又有两个小小的分之。

1) 出现于上层发送到我这里,当我这里使用 IoCallDriver() 后,底层返回数据经过我这一层时,我想让它暂时停止继续向上传递,让这个 IRP 稍微歇息一会,等我对这个 IRP 返回的数据操作完成后(一般是没有在 CompleteRoutine中对返回数据进行操作情况下,也就是说等到完成例程返回后再进行操作),由我来调用 IoCompleteRequest() 让它延着设备栈继续返回。这里要注意,我们是想让它返回的,所以调用了 IoCompleteRequest()。这个可不同于下面所讲的自己从头分配 IRP 时在 CompleteRoutine 中已经调用 IoFreeIrp() 释放了当前IRP 的情况。比如我在做一个改变文件大小,向文件头写入加密标志的驱动时,在上层发来了 IRP_MJ_QUERY_INFORMATION 查询文件,我想在这个时候获得文件信息进行判断,然后根据我的判断结果再移动文件指针。注意:上面是两步,第一步是先获得文件大小,那么在这个时候我就需要用到上述办法,先让这个 IRP传递下去,得到我想要的东西后在进行对比。等待适当时机完成这个 IRP,让数据继续传递,直到用户收到为止。第二步我会结合下面小节来讲。

2) 出现于自己从头建立 IRP,当使用 IoAllocate() 或 IoBuildAsynchronousFsdRequest()创建 IRP 调用 IoCallDriver() 后,底层返回数据到我这一层时,我不想让这个 IRP 继续向上延设备栈传递。因为这个 IRP 就是在我这层次建立的,上层本就不知道有这么一个 IRP。那么到这里我就要在 CompleteRoutine 中使用 IoFreeIrp()来释放掉这个 IRP,并不让它继续传递。这里一定要注意,在 CompleteRoutine函数返回后,这个 IRP 已经释放了,如果这个时候在有任何关于这个 IRP 的操作那么后果是灾难性的,必定导致 BSOD 错误。前面 1) 小节给出的例子只完成了第一步这里继续讲第二步,第一步我重用这个 IRP 得到了文件大小,那么这个时候虽然知道大小,但我还是无法知道这个文件是否被我加过密。这时,我就需要在这里自己从头建立一个 IRP_MJ_READ 的 IRP 来读取文件来判断是否我加密过了的文件,如果是,则要减少相应的大小,然后继续返回。注意:这里的返回是指让第一步的IRP 返回。而不是我们自己创建的。我们创建的都已经在CompleteRoutine 中销毁了。

8、关于完成 IRP 的动作简介

当一个底层驱动调用了 IoCompleteRequest() 函数时,基本上所有设备栈相关 IRP 处理工作都是在它那里完成的。包括 IRP->Flags 的一些标志的判断,对 APC 的处理,抛出MULTIPLE_IRP_COMPLETE_REQUESTS 错误等。当它延设备栈一直调用驱动所安装的 CompleteRoutine时,如果发现 STATUS_MORE_PROCESSING_REQUIRED 这个标志,则会停止向上继续回滚。这也是为什么在 CompleteRoutine 中使用这个标志即可暂停 IRP 的原因。

9、关于 ObQueryNameString 的使用

这个函数的使用,在有些环境下会有问题。它的上层函数是 ZwQueryObject()。在某些情况下会导致系统挂起,或者直接 BSOD。它是从 对象管理器中的 ObpRootDirectoryObject开始遍历,通过 OBJECT_HEADER_TO_NAME_INFO 获得对象名称。今天问了下 PolyMeta好象是在处理 PIPE 时会挂启,这个问题出现在 2000 系统。在 XP 上好象补丁了。

10、关于重入问题

其实这个问题在很久前的 IFS FAQ 里已经介绍的很清楚,包括处理方法以及每种方法可能带来的问题。IFS FAQ 里的 Q34 一共介绍了四种方法,包括自己从头建立 IRP发送,使用 ShadowDevice,使用特征字符串,根据线程 ID,在 XP 下使用() 函数。并且把以上几种在不同环境下使用要处理的问题也做了简单的介绍。且在 Q33 里介绍了在 CIFS 碰到的 FILE_COMPLETE_IF_OPLOCKED 问题的解决方法。

阅读全文

与打开文件过滤设备相关的资料

热点内容
杭州污水厂排放标准 浏览:565
EDI只用于 浏览:115
哪里有韩式pp棉过滤芯卖 浏览:459
鸡蛋壳去电热水壶水垢 浏览:906
上海小型油烟净化器需要多少钱 浏览:541
半透膜能耐受DMSO 浏览:320
EDI循环 浏览:420
威驰空气滤芯盖两个锁扣怎么打开 浏览:740
abs树脂与pp有啥区别 浏览:838
水费简易计税需要区分污水费吗 浏览:130
普通热水瓶去水垢的方法 浏览:74
别墅排水需要什么样的污水提升泵 浏览:189
河南省城镇污水厂排放 浏览:294
反渗透膜品牌选择上海保兹 浏览:891
简单蒸馏的步骤 浏览:378
07骐达空调滤芯怎么安装 浏览:184
活性炭吸附废水适用条件 浏览:904
潍坊食品废水处理设备多少钱 浏览:487
投影机过滤网怎么取 浏览:927
dsm树脂有没有毒 浏览:660