精华内容
下载资源
问答
  • C# 中使用Image.FromFile(string path)后,提示文件正在另一进程使用XXX的问题,是因为对应的文件一直调用 ,其生成的Image对象Disponse()前都不会解除锁定,这就造成了此问题,就是在这个图形解锁前无法对...

    C# 中使用Image.FromFile(string path)后,提示该文件正在被另一进程使用XXX的问题,是因为对应的文件在一直调用 ,其生成的Image对象被Disponse()前都不会被解除锁定,这就造成了此问题,就是在这个图形被解锁前无法对图像进行操作(比如删除,修改等操作)。

    解决方案:此问题可以使用下面三个方法解决问题.

    方法1:在要进行文件操作前将Image对象销毁.

    System.Drawing.Image image = System.Drawing.Image.FromFile(filePath);
    System.Drawing.Bitmap bmp = new System.Drawing.Bitmap(image);
    image.Dispose();

    方法2:在加载图像的时候用一种方法替代

    System.Drawing.Image img = System.Drawing.Image.FromFile(filepath);
    System.Drawing.Image bmp = new System.Drawing.Bitmap(img.Width, img.Height, img.PixelFormat);

    System.Drawing.Graphics g = System.Drawing.Graphics.FromImage(bmp);
    g.DrawImage(img, 0, 0);
    g.Flush();
    g.Dispose();
    img.Dispose();

    方法3:

    System.IO.FileStream fs = new System.IO.FileStream(filePath, FileMode.Open, FileAccess.Read);

    int byteLength = (int)fs.Length;
    byte[] fileBytes = new byte[byteLength];
    fs.Read(fileBytes, 0, byteLength);

    //文件流关閉,文件解除锁定
    fs.Close(); MemoryStream mStream = new MemoryStream(fileBytes);
    Image image = Image.FromStream(mStream);
    mStream.Close();
    //因为FromStream方法参数应用的流必须一直保持打开,故而代码中有一个文件流是向MemeoryStream流的转换,从而可以关闭文件流,保持MemoryStream流的打开状态。在不用mStream时关闭。

    2 文件被占用强制删除类(没试过)

    public void WipeFile(string filename, int timesToWrite)
    {
    try
    {
    if (File.Exists(filename))
    {
    //设置文件的属性为正常,这是为了防止文件是只读
    File.SetAttributes(filename, FileAttributes.Normal);
    //计算扇区数目
    double sectors = Math.Ceiling(new FileInfo(filename).Length / 512.0);
    // 创建一个同样大小的虚拟缓存
    byte[] dummyBuffer = new byte[512];
    // 创建一个加密随机数目生成器
    RNGCryptoServiceProvider rng = new RNGCryptoServiceProvider();
    // 打开这个文件的FileStream
    FileStream inputStream = new FileStream(filename, FileMode.Open, FileAccess.Write, FileShare.ReadWrite);
    for (int currentPass = 0; currentPass < timesToWrite; currentPass++)
    {
    // 文件流位置
    inputStream.Position = 0;
    //循环所有的扇区
    for (int sectorsWritten = 0; sectorsWritten < sectors; sectorsWritten++)
    {
    //把垃圾数据填充到流中
    rng.GetBytes(dummyBuffer);
    // 写入文件流中
    inputStream.Write(dummyBuffer, 0, dummyBuffer.Length);
    }
    }
    // 清空文件
    inputStream.SetLength(0);
    // 关闭文件流
    inputStream.Close();
    // 清空原始日期需要
    DateTime dt = new DateTime(2037, 1, 1, 0, 0, 0);
    File.SetCreationTime(filename, dt);
    File.SetLastAccessTime(filename, dt);
    File.SetLastWriteTime(filename, dt);
    // 删除文件
    File.Delete(filename);
    }
    }
    catch (Exception)
    {
    }
    }

    3 文件被另一进程占用string fileName = @“c:\aaa.doc”;//要检查被那个进程占用的文件

    Process tool = new Process();
    tool.StartInfo.FileName = “handle.exe”;//占用文件的进程
    tool.StartInfo.Arguments = fileName+" /accepteula";
    tool.StartInfo.UseShellExecute = false;
    tool.StartInfo.RedirectStandardOutput = true;
    tool.Start();
    tool.WaitForExit();
    string outputTool = tool.StandardOutput.ReadToEnd();

    string matchPattern = @"(?<=\s+pid:\s+)\b(\d+)\b(?=\s+)";
    foreach(Match match in Regex.Matches(outputTool, matchPattern))
    {
    Process.GetProcessById(int.Parse(match.Value)).Kill();
    }

    展开全文
  • 同一个文件,发送钉钉就完全没有问题,发送微信却总提示文件占用,无法发送” 可能是微信尚不支持以文件方式发送, 解决方案 右击文件夹–发送到–压缩文件夹–将压缩文件发送到微信 (其实就是压缩一下,将压缩...

    奇怪的问题

    在微信发送文件多次提醒时,查看了文件被占用情况,发现并未被占用,
    为了解决疑惑,尝试多方发送
    同一个文件,发送钉钉就完全没有问题,发送微信却总提示“文件占用,无法发送”
    可能是微信尚不支持以文件方式发送,

    解决方案

    右击文件夹–发送到–压缩文件夹–将压缩文件发送到微信
    (其实就是压缩一下,将压缩文件发过去即可)
    在这里插入图片描述

    展开全文
  • 解决文件一直被占用 无法改名 问题

    千次阅读 2020-10-27 20:55:14
    起因:想要在一个文件夹里新建一个代码的project,但是文件夹本身是中文名,为了防止不必要的麻烦,想把文件夹改为英文名,但是却显示文件夹被占用,手动找不到占用文件,于是我选择重启电脑。结果没想到,还是...

    起因:想要在一个文件夹里新建一个代码的project,但是文件夹本身是中文名,为了防止不必要的麻烦,想把文件夹改为英文名,但是却显示文件夹被占用,手动找不到占用的文件,于是我选择重启电脑。结果没想到,还是被占用!

    解决办法:打开任务管理器,选择资源监视器,在关联的句柄中打入 文件夹的名称 就可以搜索到占用的程序了,然后手动结束这些程序,问题解决。

    注意:explorer.exe是桌面进程,不需要结束进程

    展开全文
  • POI读取Word文件之后,文件一直被占用,无法删除 使用poi读取word文件之后,文件就无法删除,一直正在使用 在操作完word文件之后也关闭了流,并在操作完成之后删除源文件,代码看着好像是没有问题 ...

    POI读取Word文件之后,文件一直被占用,无法删除

    使用poi读取word文件之后,文件就无法删除,一直正在使用
    在这里插入图片描述
    在操作完word文件之后也关闭了流,并在操作完成之后删除源文件,代码看着好像是没有问题

    	FileOutputStream out = null;
    	File tmpFile = null;
    	try {
    		String tmpFilePath = "tmp.docx";
    		tmpFile = new File(tmpFilePath);
    		XWPFDocument doc = new XWPFDocument(POIXMLDocument.openPackage(tmpFilePath));
    		// 。。。读取并操作doc,并保存到新的word中
    		String newFilePath= "newFile.docx";
    		out = new FileOutputStream(newFilePath);
    		File newFile= new File(newFilePath);
    		if(!newFile.exists()){
    			newFile.getParentFile().mkdirs();
    			try {
    				newFile.createNewFile();
    			} catch (IOException e) {
    				e.printStackTrace();
    			}
    		}
    		doc.write(out);
    	} catch (Exception e) {
    		e.printStackTrace();
    	} finally {
    		if (out != null){
    			try {
    				out.flush();
    				out.close();
    			} catch (IOException e) {
    				e.printStackTrace();
    			}
    		}
    		if (tmpFile != null && tmpFile.isFile()) {
    			tmpFile.delete();
    		}
    	}
    

    仔细一琢磨XWPFDocument对象没有关闭,相当于poi一直在占用着word文件,但是XWPFDocument又没有colse()方法

    查看POIXMLDocument的API

    在这里插入图片描述
    POIXMLDocument类打开文件包之后确实有关闭的方法

    	FileOutputStream out = null;
    	File tmpFile = null;
    	OPCPackage tmpPackage = null;
    	try {
    		// ...
    		tmpPackage = POIXMLDocument.openPackage(tmpFilePath);
    		XWPFDocument doc = new XWPFDocument(tmpPackage);
    		// ...
    	} catch (Exception e) {
    		throw Exceptions.unchecked(e);
    	} finally{
    		if (tmpPackage != null){
    			try {
    				tmpPackage.close();
    			} catch (IOException e) {
    				e.printStackTrace();
    			}
    		}
    		// ...关闭输出流,并删除临时文件
    	}
    

    问题解决!

    展开全文
  • hosts文件被占用问题

    2021-05-11 14:00:42
    修改hosts文件一直显示被system占用,这个问题困扰了我一整天,网上所有的方法都试了包括修改权限,把文件复制出来再贴进去,用windows powershell打开修改等等,全部没用。后来我想在任务管理器中找相关的进程结束掉,...
  • C# httplistener 提示文件被占用

    千次阅读 2014-08-13 16:04:42
    今天把程序拷给zz的时候,结果程序一直异常结束,后来调试发现是httplisten的问题,抛出httplistenerException的异常,catch了一下,发现提示是The process cannot access the file because it is being used by ...
  • 我们在计算机管理里可以查看到所有共享用户占用文件,计算机管理直接搜一下名称就出来了。 当然在这里也可以直接把占用文件解除掉。 解除方法: 直接右键打开的文件,然后选择关闭就可以了。 注: 这个关闭后...
  • zipfile文件被占用

    2015-08-18 20:39:59
    今天困扰了半天的问题,发现调用java删除文件的方法删除不了zip文件,由于经过了几个流程,所以一开始不知道是文件被占用的缘故。 后来每个模块排查后发现,在对文件进行解压的操作后就出错了, ZipFile file=new ...
  • 卸载pycharm的时候提示文件正在被占用,解决方案是任务管理器
  • Java 删除文件 被占用 已解决

    千次阅读 2019-12-10 13:51:23
    一直在使用一段特定的代码来删除文件夹中的文件,但事实证明它很成问题,因为我可能忘了关闭一两个InputStream.我的代码是如此之大,以至于我无法看到所有未关闭的输入流.有没有办法删除文件是否有一个打开的...
  • 今天在复制数据库的时候出现了问题。...其次SQL Server 2012 的数据库默认存储的文件类型是.mdf,当我想复制此文件的时候,它提示我不能复制,正在被占用。于是我又开始百度了……哇哈哈……找到许多大神都
  • window删除文件提示被占用:操作无法完成因为其中文件在其他程序已打开,遇到这个很烦,大多数人(That's me)都是先关一些软件,然后不行再重启电脑。 本文目的:不重启! 打开任务管理器——性能——资源监视...
  • 今天跟新电脑中的一个软件,更新失败,提示有一个XXX.dll文件无法删除。 ■解决方法 修改这个文件的名字。(然后就OK了) ■前提 可以按照以上这么做的前提条件,以下内容都对应了,但是没有效果 1.重新...
  • 然后在某些特殊情况下,我们需要在关闭输出流之后对文件进行移动或者其他转换之类的操作,而此时你可能会遇到“文件被占用”的错误。这意味着你要操作的文件正在另一个程序使用。我们既然已经调用了close方法,...
  • 在做项目或者部署文件时,有时需要删除某一个文件,这时有可能会提示当前文件被占用无法进行删除操作,如果你已经关闭了资源管理器和打开该文件的软件及进程,仍然提示当前文件被占用无法进行删除,你可以重启电脑后...
  • windows系统中当我们在删除某个文件或文件夹时有时会提示文件有程序在使用不能删除,这时相当惆怅。那么可以用这个方法来找到是哪个进程在占用文件: 1:打开任务管理器选择“性能” 2:单击下部的“资源监视...
  • sqlite文件被占用,如何解决

    千次阅读 2014-05-05 11:26:56
    ,发现文件竟然被占用了,已经关闭了数据库连接也无效,后来从网上看到需要清除连接池
  • WPF默认的Image控件绑定Source后,图片文件被占用,此时删除或者使用另一Image控件绑定该图片,将引起文件被占用异常。甚至当Image控件删除后仍会存在文件被占用的异常,资料给出的解释是Image控件没有Dispose方法...
  • 【语言-c#】文件被占用如何解除

    千次阅读 2019-05-25 11:46:36
    C# 中使用Image.FromFile(string path)并使用System.IO.File.Delete(string path)后提示文件正在另一进程使用XXX的问题,是因为对应的文件一直使用中 ,其生成的 Image 对象 Disponse() 前都不会解...
  • 问题:删除文件时,提示文件被占用。 解决方案一:使用360等第三方软件,傻瓜式解除占用。 解决方案二:使用任务管理器。 为什么不适用傻瓜式方法呢?我需要删除服务器上的问题文件,服务器上总不可能安装360吧!...
  • remove-item + CategoryInfo : WriteError: (d:\read.txt:FileI nfo) [Remove-Item], IOException + FullyQualifiedErrorId : RemoveFileSystemItemIOError,Microsoft.PowerShell .Commands.RemoveItemCommand ...
  • srpingboot 配置 SSL 一直说密码不对然后端口被占用 我之前是这么写的 然后运行报错 怎么解决的呢 就是 把文件放到了 根目录 然后这样写 就解决了 // An highlighted blo #端口号 server.port=8089 #SSL配置 ...
  • Ubuntu (1)打开本地得cmd 连接服务器:输入... ssh root@ip (2)上传文件 ...(3)运行程序 退出后 端口被占用OSError: [Errno 98] Address already in use 正在上传…重新上传取消正在上传…重新上传取消 ...
  • 一直提示端口占用,但是查询却没有端口占用,重启也不管用 解决办法:更换网络,可以自己手机开热点测试 至于为什么,我也不知道 其他端口占用常见解决办法补充: 1,终端:lsof -i :80 查询占用pid sudo kill...
  • 删除ddl文件提示被windows资源管理器占用打开资源监视器点击cpu,在关联的句柄那里输入文件所在目录在该目录下打开powershell窗口结束进程在powershell窗口输入 `ls`命令,能够看到当前目录下所有的文件输入`rm 要...
  • Java无法删除被占用资源文件解决办法(IO流的关闭) 最近在做一个upload文件的功能,先upload文件到一个临时储存的位置,等后续把文件成功上传到server,并且读取完文件里面的数据后需要把临时储存的文件删除,但是...
  • 1.打开事件查看器,选择退出硬盘,查看系统,这时候应该显示有一个警告,右键查看是哪个进程阻止了硬盘退出。 2.下载process hacker,右上角搜索该进程名字,kill掉该进程 3.再次点击退出硬盘 ...
  • 1.打开任务管理器,点击标题栏的性能,在点击资源监视器,在标题栏里点击cpu,再在关联的句柄里搜索被占用文件,就可以找到占用文件的进程并结束该进程,就可以删除了,当我搜素90时,出现大量的进程,当我将...
  • 在我们日常使用电脑中,肯定会遇到下面这种情况,文件被打开或者被占用无法删除的问题。 点击重试也无法解决。只能找到对于打开这个文件的程序,将其退出,才可以进行删除。有时候还找不到,只能重启电脑后,再进行...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 137,703
精华内容 55,081
关键字:

一直提示文件被占用