在用户重命名文件时,用任何语言有什么方法可以挂钩我的程序吗?

例如:用户重命名文件并按Enter(或单击)以确认重命名操作。 在文件实际重命名之前,我的程序“侦听”此事件并弹出一条消息“你确定要将C:\\ test \\ file.txt重命名为C:\\ test \\ test.txt吗?”。

我在想/希望这可以用C ++,C#或.NET。但我没有任何线索在哪里寻找。

===============>>#1 票数:5 已采纳

您可以通过在.NET框架中使用FileSystemWatcher类来解决此问题。

从课堂评论:

您可以观察文件或目录的重命名,删除或创建。 例如,要监视文本文件的重命名,请将Filter属性设置为“* .txt”,并使用为其参数指定的Renamed调用WaitForChanged方法。

===============>>#2 票数:0

我的猜测是,这是不可能的,我也觉得是一个文件夹监控操作(包括重命名),但似乎没有成为文件类似的方法。

@Richard,FileSystemWatcher很好,如果你只需要监视更改,但他需要中断它不能做的事情。

===============>>#3 票数:0

IFileOperationProgressSink.PreRenameItem是我所知道的最接近支持的东西。 不幸的是,它不是资源管理器的钩子 - 因此您只能将它用于您自己的IFileOperation操作。 根据您的需要,您可以编写一个shell扩展来执行自己的ConfirmRename (或其他),并从那里进行分支。

否则,我认为你正在考虑挂钩SHFileOperation 这必须在非托管代码中完成,因为您将加载到Explorer.exe中。 对于Vista,这已经改为IFileOperation - 这可能意味着你必须挂钩它的创建并传递你的模拟。

就个人而言,我认为既然你正在谈论重命名, wilhelmtell的想法改变之后确认,并在必要时撤消它是最好的主意。

  ask by pek translate from so

未解决问题?本站智能推荐:

3回复

Windows资源管理器中单独的文件名字符串?

注意:我已经将标签编辑为C#和.NET。 您可以在上面的图片中看到我的2009文件夹中有.pdf文件,现在我的任务是获取_之前的字符串(是我的ID)和字符串(文件名)以及之后. 是扩展名。 这些都是我的Windows资源管理器中2009文件夹下的文件名。 在SQL中,我想创
3回复

在UWP中使用具有文件内容的StorageFile类[通用Windows平台]

我有一个API服务,可以使用带有POST方法的标准HttpClient来转换文件并发送回转换后的PDF文件,实际上是其内容。 我不需要磁盘上文件的物理副本,但等效于StorageFile类。 我对此主题有一些疑问,但在任何地方都找不到答案: 使用StorageFile类获取文件
4回复

在C#应用程序中删除压缩文件

我想在我的代码C#中删除一个zip文件 但我有此错误The format of the given path is not supported. 为什么出现此异常? 我该如何解决此错误?
1回复

如何手动锁定其他应用程序的文件

我花了很多时间搞清楚如何做到这一点,但没有找到任何有用的解决方案。 这就是我想要做的。 我在我的应用程序中生成一个巨大的二进制文件。 棘手的是,这个过程需要我偶尔关闭FileStream。 现在的问题是,偶尔其他应用程序(即我的病毒扫描程序)正在使用文件未被锁定的这个短暂时刻,以锁定
1回复

Windows上的事务文件追加

我执行一个简单的操作:将一小部分数据快速附加到驻留在NTFS上的大文件中。 额外的要求是必须原子完成。 但是,对并发没有任何要求(一位作者,没有读者)。 我该如何解决这个问题? 欢迎使用.NET API或WinAPI。 从概念上讲,这应该很容易实现:只需写入数据,然后原子写入文
2回复

可以使用IO.File.Exists检查.Net中的服务器是否启动吗?

我正在创建一个服务,该服务创建一个文本文件,该文件可被其他软件远程读取(此文件在多台服务器上创建), 当需要读取文件时,我尝试从已定义的主服务器读取文件,如果无法读取文件,则假定服务器已关闭或没有响应,然后尝试从辅助服务器获取文件, 当前,我在主服务器上对该文件执行IO.File.E
2回复

WPF的文件资源管理器-获取文件目录/路径

昨天我问了一个有关WPF的简单文件资源管理器的问题: 文件资源管理器-UnauthorizedAccessException 文件浏览器工作正常,但是现在我需要所选文件的文件名和文件路径。 这是我的xaml: 我可以得到文件名: 但是,如果我尝试获取文件路径-它不起作
2回复

发送文件夹重命名命令到Windows资源管理器

我在.NET中创建了一个shell扩展,用于创建文件夹(将其视为上下文菜单New - > New Folder选项克隆),并使用InputBox从用户输入文件夹的名称。 相反,我想将文件夹上的rename命令发送到已经打开的 Windows资源管理器窗口。 它应该像Explorer让我
4回复

C#大容量文件重命名器

我想创建C#海量文件重命名器,这是我的UI 我已经创建了tes文件夹,在tes里面有一个文件1.txt 。 我想创建我的程序以在文件中添加前缀和后缀,因此1.txt将变为prefix1suffix 但后来我得到一个错误 它说虽然tes文件夹上只有一个文件,但该file a
1回复

如何在C#中使用字符串格式重命名文件?

这是这种情况:我使用如下字符串格式创建了一个新文件名: 并且我有另一个(旧)文件,其路径为: string path = @"C:\\Users\\Public\\fileName.txt"我想更改或移动旧->新文件。 怎么做? 是否可以更改新的路径? 有谁能帮助我。 提前