[英]How to allow the user to select an input file for my SQL AdventureWorks web application?
[英]Allow User to Delete File In Use By My Application?
我可以允许用户删除Windows下我的应用程序正在使用的文件吗?
在我的方案中,我有一个“快速添加”目录,该目录由我的应用程序监视。 当看到新的图像显示时,它将创建一个新的幻灯片以自动幻灯片显示。 我还希望允许我的用户从“快速添加”目录中删除(和/或重命名)文件,并将其从幻灯片放映中删除。
有没有一种方法可以标记该文件以通知Windows我可以在应用程序使用它的同时删除该文件?
有没有一种方法可以标记该文件以通知Windows我可以在应用程序使用它的同时删除该文件?
是。 在Win32中,这是dwShareMode
传递给CreateFile()
。 这是您希望允许其他进程执行的位域。 您所寻找的位是FILE_SHARE_DELETE
,它允许在打开时进行删除或重命名。 但是,对于最礼貌的行为,我建议将所有3个文件都包含在内, FILE_SHARE_READ | FILE_SHARE_WRITE | FILE_SHARE_DELETE
FILE_SHARE_READ | FILE_SHARE_WRITE | FILE_SHARE_DELETE
FILE_SHARE_READ | FILE_SHARE_WRITE | FILE_SHARE_DELETE
。 [1]
由于您询问的是C#而不是Win32,因此在.NET世界中,这些文件包含在FileShare
枚举中,您可以在打开文件时传递该枚举,例如。 在File.Open
。
请注意,当按名称打开文件时,这些标志不允许您重命名文件的父目录。 由于内核的限制(无论是在ntfs.sys IIRC中),无论共享如何,都将失败。
脚注
1:社论评论:遗憾的是,传递0
(许多人不加考虑)确实是最小的允许选项,或者更多的人在Windows上编写代码时没有意识到此参数的作用并传递了这三个标志。
如果在使用文件的控件上调用Delete()
或Rename()
方法,则可以在删除或重命名文件之前将其从PictureBox中删除。
进行多次运算应该不会有太大的问题。 使用控件上的复选框,您只需检查每个控件以查看该属性是否为true,然后调用适当的方法。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.