C# 如何判断文件夹是否打开

qq183670101 2010-07-09 06:42:51
最近做了一个小程序 是文件夹加密,如果打开要加密的文件夹, 然后在从我电脑又找到该文件夹 这时候在加密,会有一些问题, 所以 怎么判断文件夹是否被打开,fileSystemWatcher不行的 ,并且 知道打开后 怎么关闭?高手指点 感谢。
...全文
1090 22 打赏 收藏 转发到动态 举报
写回复
用AI写文章
22 条回复
切换为时间正序
请发表友善的回复…
发表回复
guohelv0519 2010-08-08
  • 打赏
  • 举报
回复
假如出现问题,不是加入出现问题。
guohelv0519 2010-08-08
  • 打赏
  • 举报
回复
除非你是对已经被打开的文件夹进行移动或删除操作,否则不会出现任何问题。加入出现问题,在你的程序中加上 try{} catch{} 模块,让系统自己捕获错误,然后处理你自己的逻辑,除此之外,别无他法。
qq183670101 2010-08-08
  • 打赏
  • 举报
回复
大家没有明白意思 就是D盘下有个A文件夹 你双击后。再回到D盘 在选择A 这是操作A文件夹
任务栏有A, 这样情况会出错,这是我所谓的打开,
怎么判断是否有这样的情况。
qq183670101 2010-08-08
  • 打赏
  • 举报
回复
哎 还是没法 达到所要的结果
aimeast 2010-08-08
  • 打赏
  • 举报
回复
星际1有个win7用的花屏补丁,是.net做的,里面做到了获取打开的文件夹的方法。
private void EnumOpenedFolder()
{
this.OpenedFolder.Clear();
Shell shell = new ShellClass();
IShellWindows windows = shell.Windows() as IShellWindows;
foreach (IWebBrowserApp app in windows)
{
if (app.LocationURL.StartsWith("file://"))
{
this.OpenedFolder.Add(app.LocationURL);
}
}
}
楼主可以用reflecter研究研究
sunli_py 2010-07-09
  • 打赏
  • 举报
回复
我也想知道,顶一个
zhengqian529 2010-07-09
  • 打赏
  • 举报
回复
直接上code,当文件打开,再试图做操作会出现异常

catch (IOException)
{
MessageBox.Show("File is open or is used by another process.", "Warning",
MessageBoxButton.OK, MessageBoxImage.Warning);
}
铛铛 2010-07-09
  • 打赏
  • 举报
回复
[Quote=引用 9 楼 wuyq11 的回复:]
try
{File.Move
}catch{}
修改文件名[DllImport("kernel32.dll")]
public static extern IntPtr _lopen(string lpPathName, int iReadWrite);
[/Quote]
有钻石的就是不一样
SamuDra 2010-07-09
  • 打赏
  • 举报
回复
凑个热闹..围观下..
air123456789 2010-07-09
  • 打赏
  • 举报
回复
关注啊。。说不定啥时候就有用。
jackyzsy2008 2010-07-09
  • 打赏
  • 举报
回复
文件夹打没打开还有影响?你确定你的操作失败是由于文件夹的问题?
wuyq11 2010-07-09
  • 打赏
  • 举报
回复
try
{File.Move
}catch{}
修改文件名[DllImport("kernel32.dll")]
public static extern IntPtr _lopen(string lpPathName, int iReadWrite);

bobo_911 2010-07-09
  • 打赏
  • 举报
回复
打开应该文件会有个只读的属性吧。
q107770540 2010-07-09
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 yanlingoffice 的回复:]

楼上,那如果没打开,不就删除了?
[/Quote]
finally{//如果删除了,恢复一下}
qq183670101 2010-07-09
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 q107770540 的回复:]
当文件被打开状态下,你对文件进行删除,会失败
你可以利用这一点来判断文件当前是否被打开的状态
[/Quote]你到真会想 , 支持,虽然不是最好方法 但是也能用。可是怎么关闭 有人知道吗?
yanlingoffice 2010-07-09
  • 打赏
  • 举报
回复
楼上,那如果没打开,不就删除了?
q107770540 2010-07-09
  • 打赏
  • 举报
回复
当文件被打开状态下,你对文件进行删除,会失败
你可以利用这一点来判断文件当前是否被打开的状态
netstray 2010-07-09
  • 打赏
  • 举报
回复
关注中……
njw1028 2010-07-09
  • 打赏
  • 举报
回复
判断文件夹的属性么?帮顶
kid_wang 2010-07-09
  • 打赏
  • 举报
回复
嘿嘿,友情帮顶。
加载更多回复(2)

110,534

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧