如何在C#中的OpenFileDialog中限制文件名修改

2024-01-03

我有一个 C# .NET 3.5 程序,它使用OpenFileDialog检索要导入的文件。它有两个过滤器(*Domain*.* and *.*)和*Domain*.*被选为FilterIndex。我看到文件在过滤器中修改后消失的情况OpenFileDialog.

以下是用户重现问题所需采取的步骤:

  1. 在程序中,打开OpenFileDialog。确保过滤器设置为*Domain*.*.
  2. 在目录中找到与过滤器匹配的文件并更改文件名,使其不再与过滤器匹配。注意:该文件将会消失。
  3. 更改过滤器以显示所有文件*.*. 注意:即使您应该显示该文件也没有列出*.*.

此时,您可以在Windows资源管理器中打开该文件夹,看到存在更改名称的文件。然而,在OpenFileDialog,无论使用什么过滤器,它都不再可见。再次查看该文件的唯一方法是关闭OpenFileDialog然后重新打开它。

这是我创建的代码OpenFileDialog

using(OpenFileDialog domainFileDialog = new OpenFileDialog())
{
    domainFileDialog.CheckFileExists = true;
    domainFileDialog.CheckPathExists = true;
    domainFileDialog.Filter = "Domain Files (*Domain*.*)|*Domain*.*|All files (*.*)|*.*";
    domainFileDialog.FilterIndex = 1;
    domainFileDialog.Multiselect = false;
    domainFileDialog.RestoreDirectory = true;
    domainFileDialog.ShowReadOnly = true;
    domainFileDialog.SupportMultiDottedExtensions = true;
    domainFileDialog.Title = "Choose the Domain File to Import...";
    domainFileDialog.ValidateNames = true;

    \\ Perform Import functionality...
}

似乎当你打开OpenFileDialog并修改与限制性更强的过滤器匹配的现有文件,使其不再与过滤器匹配,即使所有文件都从可见性中消失,该文件也会消失*.*显示。

由于我不知道为什么会发生这种情况,(并且我愿意寻求有关如何修复它的建议)是否有任何方法可以限制用户创建或修改文件中的任何文件OpenFileDialog希望防止这个问题?


首先,我建议您考虑是否值得关心用户可能这样做。如果 FOD 这样做,每个 Windows 应用程序都有这个功能,但你不会听到用户抱怨它。那么这真的是一个需要解决的问题吗?

如果问题与过滤器不仅仅涉及文件扩展名有关,我不会感到惊讶 - 这样做是相当不传统的。也许仅尝试使用扩展程序,看看这是否是原因。

您是否尝试过按 F5 刷新其缓存数据?我不知道这是否会像在资源管理器窗口中那样在 FOD 中起作用,但尝试一下可能会很有趣。

话虽如此,过滤按键(F2)和鼠标点击(右键)是微不足道的(您可以从中派生出一些形式,或者您可以添加一个MessageFilter),使用户无法访问任何允许他们重命名 FOD 中文件的 UI。如果你以这种方式破坏了 FOD,作为一个用户,我会很生气——无论如何,这比在极少数情况下“消失”的重命名文件要严重得多。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何在C#中的OpenFileDialog中限制文件名修改 的相关文章

  • 在 Vulkan 中,图形队列系列与当前队列系列分离是否有益?

    据我所知 队列系列可能支持呈现到屏幕但不支持图形 假设我有一个同时支持图形和呈现的队列系列 以及另一个仅支持呈现的队列系列 我应该为两个进程使用第一个队列系列 还是应该将第一个队列系列委托给图形 将后者委托给呈现 或者这两种方法之间没有明显
  • 捕获 .aspx 和 .ascx 页面中的异常

    问题说明了一切 请看以下示例代码 ul li li ul
  • 无法继承形状

    为什么我不能使用继承 a 的类Shapes class http msdn microsoft com en us library ms604615 28v vs 90 29 我需要延长Rectangle具有一些方法的类 但我想以与使用相同
  • C# 中一次性对象克隆会导致内存泄漏吗?

    检查这个代码 class someclass IDisposable private Bitmap imageObject public void ImageCrop int X int Y int W int H imageObject
  • 使用 C# 和 ASP.NET 在电子邮件附件中发送 SQL 报告

    我正在尝试使用 ASP NET 和 C 从 sql reportserver 2008 作为电子邮件附件发送报告 到目前为止我学会了如何获取 PDF 格式的报告 http weblogs asp net srkirkland archive
  • MVC 5 中具有 ASP.NET Identity 的 Autofac 不会验证 OWIN 管道中的安全标记

    我在 MVC 5 中设置了 AutoFac 来与 ASP NET Identity 一起使用 表面上一切似乎都工作正常 即用户可以创建帐户并登录 但后来我发现 当安全标记更改时 用户不会注销 通过在 AspNetUsers 表中进行暴力破解
  • Makefile 和 .Mak 文件 + CodeBlocks 和 VStudio

    我对整个 makefile 概念有点陌生 所以我对此有一些疑问 我正在 Linux 中使用 CodeBlocks 创建一个项目 我使用一个名为 cbp2mak 的工具从 CodeBlocks 项目创建一个 make 文件 如果有人知道更好的
  • if constexpr 中的 not-constexpr 变量 – clang 与 GCC

    struct A constexpr operator bool const return true int main auto f auto v if constexpr v A a f a clang 6 接受该代码 GCC 8 拒绝它
  • JavaScript 错误:MVC2 视图中的条件编译已关闭

    我试图在 MVC2 视图页面中单击时调用 JavaScript 函数 a href Select a JavaScript 函数 function SelectBenefit id code alert id alert code 这里 b
  • Unity手游触摸动作不扎实

    我的代码中有一种 错误 我只是找不到它发生的原因以及如何修复它 我是统一的初学者 甚至是统一的手机游戏的初学者 我使用触摸让玩家从一侧移动到另一侧 但问题是我希望玩家在手指从一侧滑动到另一侧时能够平滑移动 但我的代码还会将玩家移动到您点击的
  • 条件类型定义

    如果我有一小段这样的代码 template
  • 对于 C# Express 用户来说,有哪些好的工具可以识别可能重复的代码? [关闭]

    Closed 这个问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 也可以看看 有什么工具可以检查重复的 VB NET 代码吗 https stackoverflow c
  • 如何在多线程应用程序中安全地填充数据并 Refresh() DataGridView?

    我的应用程序有一个 DataGridView 对象和一个 MousePos 类型的列表 MousePos 是一个自定义类 它保存鼠标 X Y 坐标 类型为 Point 和该位置的运行计数 我有一个线程 System Timers Timer
  • SQLAPI++ 的免费替代品? [关闭]

    Closed 这个问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 是否有任何免费 也许是开源 的替代品SQLAPI http www sqlapi com 这个库看起来
  • ASP.NET Core 中间件与过滤器

    在阅读了 ASP NET Core 中间件之后 我对何时应该使用过滤器以及何时应该使用中间件感到困惑 因为它们似乎实现了相同的目标 什么时候应该使用中间件而不是过滤器 9频道有一个关于此的视频 ASP NET 怪物 91 中间件与过滤器 h
  • 如何高效计算连续数的数字积?

    我正在尝试计算数字序列中每个数字的数字乘积 例如 21 22 23 98 99 将会 2 4 6 72 81 为了降低复杂性 我只会考虑 连续的数字 http simple wikipedia org wiki Consecutive in
  • 如何从 Windows Phone 7 模拟器获取数据

    我有一个 WP7 的单元测试框架 它在手机上运行 结果相当难以阅读 因此我将它们写入 XDocument 我的问题是 如何才能将这个 XML 文件从手机上移到我的桌面上 以便我可以实际分析结果 到目前为止 我所做的是将 Debugger B
  • 声明一个负长度的数组

    当创建负长度数组时 C 中会发生什么 例如 int n 35 int testArray n for int i 0 i lt 10 i testArray i i 1 这段代码将编译 并且启用 Wall 时不会出现警告 并且似乎您可以分配
  • ContentDialog Windows 10 Mobile XAML - 全屏 - 填充

    我在项目中放置了一个 ContentDialog 用于 Windows 10 上的登录弹出窗口 当我在移动设备上运行此项目时 ContentDialog 未全屏显示 并且该元素周围有最小的填充 在键盘上可见 例如在焦点元素文本框上 键盘和内
  • 如何为有时异步的操作创建和实现接口

    假设我有数百个类 它们使用 计算 方法实现公共接口 一些类将执行异步 例如读取文件 而实现相同接口的其他类将执行同步代码 例如将两个数字相加 为了维护和性能 对此进行编码的好方法是什么 到目前为止我读到的帖子总是建议将异步 等待方法冒泡给调

随机推荐

  • 自定义排序 Python 字典

    所以我有一本打印时看起来像这样的字典 10 10 ZT21 14 WX21 12 2 15 5 3 UM 25 我想以我定义的自定义方式对它们进行排序 假设我希望它的排序方式 按键 是ZT21 10 WX21 UM 5 2 有人知道如何以预
  • 到达时间时计时器开始活动

    我希望在达到新活动时开始新活动 到目前为止我遇到了一些麻烦 这就是我到目前为止所拥有的 我希望你们明白我想做什么 如果有更简单有效的方法请告诉我 也许我应该把它放在一个线程中 Chrono Chronometer findViewById
  • 为什么我的 Eclipse 项目有虚拟调试器断点?

    我有一个小项目 当在 Eclipse 调试器中运行时 它似乎总是停在 FileInputStream class 第 106 行 文件被打开 没有设置断点 但 Eclipse 的行为就像我在这里设置了断点一样 如果我清除所有断点 它仍然会发
  • 我应该将 master 合并到功能分支中以使其更新吗?这会被视为不好的做法吗?

    我有这样的情况 master A B E F C D feature x 如果我需要将关键修复 E 和 F 合并到 feature x 分支中以继续开发并且我打算合并回 master 我是否应该将 master 合并到 feature x
  • 如何使用 ALAssetsLibrary 只获取视频

    我正在尝试通过以下代码从照片库中获取视频 但我也获取图像列表 如何获取所有视频的列表 我究竟做错了什么 NSMutableArray assetURLDictionaries NSMutableArray alloc init xy NSM
  • 打印机目的地问题

    我成功地使用 PrintWriter 将字符串写入文本文件 并且默认情况下输出文本文件被写入我正在处理的 Eclipse 项目的目录中 但我的 Eclipse 项目有一个名为 Resources 的特定文件夹 我希望将文本文件写入其中 我的
  • 如何设置 Superset 配置进行缓存

    目前 我出于工作目的正在从事 Airbnb Superset 项目 我知道 Superset 支持缓存 通过 Flask Cache 但是当我设置配置时我遇到了困难 我的 config py 文件如下所示 CACHE DEFAULT TIM
  • 在 AngularJS ngRepeat 中动画 ng-move 动画错误的项目

    当谈到在 ng repeat 中动画 ng move 时 我有点困惑 例如 如果我将数组项目从 3 移动到 7 则项目 4 7 会向上移动并且它们会产生动画 然而 我从 3 移到位置 7 的实际项目却没有 这是一个展示我的问题的 plunk
  • 线程内的消息循环

    如何使用 OTL 在线程内实现消息循环 应用程序 ProcessMessages 是我到目前为止所使用的 但使用起来不太安全 Thanks 这是我从线程队列中提取消息的方法 while GetMessage Msg 0 0 0 and no
  • Github 解决冲突总是将基础分支合并到我当前的分支

    我在 PHP Storm 的本地分支机构工作 任务完成后 我提交我的分支并推送到 git 在 Github 页面上 我创建了一个 Pull 请求 DEV 到目前为止这还可以 但如果某些文件存在冲突 根据这篇文章https docs gith
  • 加载 Keras 模型并用它进行预测

    我制作了一个用于假新闻检测的 Keras NN 模型 我得到了 89 1 的验证准确度 我使用 50 000 个样本进行训练 使用 10000 个样本进行测试 使用 2000 个样本进行验证 我已经保存了该模型 现在我想加载该模型 加载我想
  • 链表与向量

    在过去的几天里 我一直在为软件开发工作的第一次电话面试做准备 在研究我提出的问题时本文 http www codinghorror com blog 2008 01 getting the interview phone screen ri
  • getsockopt 返回与 setsockopt 中设置的不同的 IP_TOS 值

    我正在尝试使用setsockopt to set IPTOS价值IPTOS THROUGHPUT The setsockopt回电0 但是 那getsockopt显示了IP TOS值设置为1 这不同于IPTOS THROUGHPUT 0x8
  • 崩溃。项目开发处于非活动状态

    当我尝试上传新风味版本时 出现错误 警告 Crashlytics 上传发行版时出现问题 项目开发处于非活动状态 我该如何修复它并添加新的flavor用于测试 来自 Stackoverflow 上另一位用户的回复 https stackove
  • Angular js 中的 Twitter 引导日期选择器

    我正在使用 twitter bootstrap Angular js 和 Taffy DB 构建一个应用程序 javascript function datepicker datepicker scope submit function c
  • 在 Delphi 中调整 png 图像大小 - 不正确的 alpha 通道

    我正在调整可能有 Alpha 通道的 png 图像的大小 一切正常 但有一个例外 我在透明区域周围得到一些灰色像素 原始图像没有任何阴影 有没有办法解决这个问题 解决它 我正在使用 Gustavo Daud 的 SmoothResize 请
  • Dart 更新渠道有哪些?

    On the Dart 编辑器页面 https www dartlang org tools editor 我们可以在 2 个频道之间进行选择 dev and stable 它们之间有什么区别 Rico Wind的这篇文章 https gr
  • 下划线变量后跟范围在 bash 中意味着什么:$_{0..10}

    根据tldp org http tldp org LDP Bash Beginners Guide html sect 03 02 html bash下划线变量是 下划线变量在 shell 启动时设置 包含参数列表中传递的正在执行的 she
  • foreach() 和 if() 中单独的开始标记和结束标记

    我在执行单独的开始和结束标记时遇到一些问题 出现解析错误 我在 mvc1 2 中这样做 但是在 mvc4 中如何完成此操作 我正在做一个foreach 根据计数我打开了一个div并关闭一个div 这是代码 foreach var d in
  • 如何在C#中的OpenFileDialog中限制文件名修改

    我有一个 C NET 3 5 程序 它使用OpenFileDialog检索要导入的文件 它有两个过滤器 Domain and 和 Domain 被选为FilterIndex 我看到文件在过滤器中修改后消失的情况OpenFileDialog