删除图片时,报错“正由另一进程使用,因此该进程无法访问此文件”的处理方式

在做一个小项目时练习的时候,当我单击删除按钮删除图片时,却发生了异常,如下图:


在网上搜索半天,可就是没找到解决方法,终于,经过我的不懈努力,在谷歌里面搜到了。原来,在PictureBox里面显示图片的的这一事件占据了程序的一个进程,当要删除这张图片的时候,这个进程仍然在执行中。就算让PictureBox先显示下一张图片,然后再删除也不行。因为要删除的那张图片被占用了,无法删除!面对这样的情况,需要在这个图片文件被删除之前,就释放掉PictureBox里面的图片资源。具体代码如下:

//获取要删除的图片的路径
                string fullPath = GetPictureFullPath(lbPictureName.SelectedItem.ToString());
                
                FileInfo file = new FileInfo(fullPath);

                //释放掉PictureBox里面的Image资源
                pbShowPicture.Image.Dispose();

                //删除一张图片后,让PictureBox自动显示下一张,如果已经是最后一张,则显示第一张图片
                if (lbPictureName.SelectedIndex == lbPictureName.Items.Count)
                {
                    lbPictureName.SelectedIndex = 0;
                }
                else
                {
                    lbPictureName.SelectedIndex = index + 1;
                }
                lbPictureName.Items.Remove(lbPictureName.Items[index]); //把ListBox里面的图片移除
                
                file.Delete();        //删除图片                
                
                MessageBox.Show("删除成功!");
这样,这个异常就被解决了!

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
Jpom是一款简而轻的低侵入式在线构建、自动部署、日常运维、项目监控软件。 项目主要功能及特点: 1、创建、修改、删除项目、Jar包管理 2、实时查看控制台日志、备份日志、删除日志、导出日志 3、cpu、ram 监控、导出堆栈信息、查看项目进程端口、服务器状态监控 4、多节点管理、多节点自动分发 5、实时监控项目状态异常自动警 6、在线构建项目发布项目一键搞定 7、多用户管理,用户项目权限独立(上传、删除权限可控制),完善的操作日志 8、系统路径白名单模式,杜绝用户误操作系统文件 9、在线管理Nginx配置、ssl证书文件 10、Tomcat状态、文件、war包在线实时管理 特别提醒:在Windows服务器中可能有部分功能因为系统特性造成兼容性问题,建议在实际使用中充分测试。Linux目前兼容良好 Jpom更新日志: v2.5.1 新增功能 【Server】保存邮箱信息时候验证邮箱配置是否确 【Server】Token 机制采用 jwt 【Server】git 构建新增进度日志输出 【Server】添加操作监控相关 api 和页面功能 【Server】完善 JWT token 过期自动续签功能 【Server】添加前端页面引导系统(使用 introJs) 【Server】访问 ip 限制,支持配置白名单和黑名单来控制 ip 访问权限 【Server】添加服务自启动脚本创建方案,下面贴一下 Server 端自启动方式: 解决BUG、优化功能 【Server】全局网络请求新增 loading 状态控制 【Server】获取构建日志关闭 loading 状态 【Agent】控制台日志支持定时清空,避免日志文件太大 【Server】在线升级状态判断修复 【Server】修复项目获取进程信息失败 【Server】项目文件管理中显示项目文件存放真实目录 【Server】项目文件管理中文件夹不存在时,loading不消失 【Server】文件管理列表不能常加载二级以上的目录 【Server】添加监控判断用户是否配置警联系方式 【Server】初始化安装不能自动登录 【Server】页面组件采用国际化采用 zh_cn 【Server】服务器中验证码无法加载 【Agent】解决控制台输出 Failed to check connection: java.net.ConnectException: Connection refused: connect,因为没有关闭对应的 jmx 【Agent】解决首页控制台 java 进程列表慢的问题(采用定时拉取并缓存) 【server】fix bug: 节点列表页面,展开某个节点之后点击操作按钮会出现新的一行无效数据 【server】fix bug: 节点列表页面,在没有安装节点的情况下,点击终端按钮会在控制台。点击这里查看对应 issue 【server】fix bug: 节点管理里面的 Nginx 管理,关闭服务的接口参数传递了。点击这里查看对应 issue 【server】优化系统配置页面的样式,在小屏幕设备上会出现多个竖方向上的滚动条,甚至有时候会遮住底部的操作按钮 【server】ssh 终端命令交互优化(改优化取消之前版本快捷解压功能,删除命令检查) 【server】优化表格的排版和高度等样式,适配页面。
一般分为如下几个原因: 1、iis中是否开启了 父目录 internet explorer 针对此问题关键解决办法: web站点右键属性——》 目录(配置)--》选项--》启用父路径 web站点目录要有iusr用户,并且iusr用户(如果是新建的用户也要给权限)要用读取、写入权限(如果里面不需要运行asp、php脚本就不需要给写入) 服务器误[网站https服务器内部500误的解决方法][修改版]全文共7页,当前为第1页。2、一般情况如果客户端ie开启了查看程序误,可以看到详细的误,可以根据误提示到百度搜索即可。3、针对iis访问量过大的原因,例如asp无法访问了,但php却可以访问。通讯量超出网站的配置能力的解决办法通讯量超出网站的配置能力的解决办法,一般经常碰到被cc攻击的人出现这个,开启硬防防护之后为什么还会出现这个呢?建议直接租用本司的高防服务器。浏览里如下:此时无法处理请求。通讯量超出网站的配置能力经过测试调试~发现根本不是某些误导人的文章 所说的以下原因1.ddos (要真被ddos!不可能还能打的开来!)2.iis不够!(iis不够不是这个情况)总结自己的原因所在是iis 同时解析asp的进程数目不够!通过以下修改 iis---网站----属性----主目录----配置----缓存选项----增大原有数目的双倍即可!如果还是不行,可以参考下面的方法:今天介绍的误是:https服务器内部500误,这个误是很多站长无论是自己写的程序还是下载采用别人的源程序经常遇到的。一按页面显示是: 服务器误[网站https服务器内部500误的解决方法][修改版]全文共7页,当前为第1页。 网站无法显示该页面 http 500 最可能的原因是: ·该网站在进行维护。 ·该网站有程序误。 您可以尝试以下操作: 刷新该网页。 返回到上一页。 更多信息 此误(http 500 内部服务器误)意味着您访问的网站出现了服务器问题,此问题阻止了该网页的显示。 有关 http 误的详细信息,请参阅帮助。 服务器误[网站https服务器内部500误的解决方法][修改版]全文共7页,当前为第2页。很多站长看到这个页面便目瞪口呆,有的人到百度搜索答案,网上的答案大同小异,很多都很复杂,根本不知道在说什么。其实服务器内部500误大概可分为两种,一种是服务器本身权限问题,另一种是程序上不规范或者误造成。所以要解决此问题需要先弄清楚其到底是哪种原因,那该如何检测是那种原因呢?请往下看: 服务器误[网站https服务器内部500误的解决方法][修改版]全文共7页,当前为第2页。 在ie浏览器下点击 工具-internet选项-高级,滚动条拉到最后,将"显示友好http误信息"前的勾去掉,确定,这时刷新"500内部服务器误"页面,或者重新启动该页面,页面便会弹出新的项目,这是网页的信息便会告诉你是原因导致此误发生。 当然这时,很多站长会发现即使显示出误类型了,还是不知道怎么解决,最简单方法就是你吧新的误类型再次复制到到百度里进行提问查询,便知道如何解决了。对于程序问题,在这里实在不好说是怎么解决,因为程序误类型很多,根本不知道各位站长会遇到怎样的误,如果查出来是权限问题,那么好解决,往下看: 程序在本地情况下:点击进入到源程序的根目录文件夹,点击最上面的 工具-文件夹选项-查看,将"使用简单文件共享(推荐)"前面的勾去掉,确定。这时要对你要设置权限的文件或者文件夹进行更改权限,选中文件文件夹右击,属性-安全-添加-高级-立即查找,在下面的一组用户中选择iwam_(你的计算机名)和iusr_(你的计算机名),确定,返回"安全"界面,将iwam_(你的计算机名)(为进程账户)权限设置为完全控制,iusr_(你的计算机名)(来宾账户)设置成读取权限。 服务器误[网站https服务器内部500误的解决方法][修改版]全文共7页,当前为第3页。如果你要是觉得很烦,最简单就是选中整个存放程序的文件夹,注意是存放程序的文件夹,进行右击重复以上步骤,当选择权限时,直接选择 everyone确定后将权限设置成完全控制即可,如果你的程序是在服务器上出现权限问题需要跟精简服务商联系了! 服务器误[网站https服务器内部500误的解决方法][修改版]全文共7页,当前为第3页。 https 500内部服务器误如何解决 https 500内部服务器误如何解决?首先你要先装好iis,xp sp2中的应该是5.1版本的,安装方法: 1->打开控制面板,选择添加删除程序 2->选择添加删除组件,选择internet信息服务,也就是iis 3->点击下一步安装就好了 安装好之后也许你的机子会常的显示ht
AIX常用命令://查看机器序列号,IBM的基本信息都可以通过该命令查询得到 #prtconf #oslevel -r == uname -a //操作系统版本 #oslevel //查看操作系统版本ex :5.1.0.0 #oslevel -r //ex:5100-04 == oslevel -q //双机软件版本号 # lslpp -l|grep cluster //显示graphic display # lsdisp //查看CPU的个数 # bindprocessor -q //查看CPU的主频,操作系统版本最低是AIX 5.1,包含在软件包bos.pmapi.pmsvcs pmcycles This machine runs at 1500MHz //显示cpu的主频是1.5G #如何查找根文件系统(/)中的大文件 find -xdev -size +xxxx -ls #查找根卷组下大于2M的文件, 并根据文件大小排序, 大文件在前. find / -xdev -size +1024 -ls |sort -r +6 8277 624 -r-xr-xr-x 1 root system 635390 Jul 31 2003 /sbin/helpers/jfs2/fsck 28 596 -rw-r--r-- 1 root system 609388 Apr 12 17:25 /smit.log 30 1660 -rw-r--r-- 1 root system 3338083 Apr 5 14:08 /core #查看备份磁带中备份文件的大小 tcopy /dev/rmt0 tcopy: Tape File: 1; Records: 1 to 251; Size: 2097152. ---磁带机文件头大小 tcopy: Tape File: 1; Record: 252; Size 344064. ---磁带机文件头大小 tcopy: File: 1; End of File after: 252 Records, 526729216 Bytes. ---文件大小 tcopy: The end of the tape is reached. tcopy: The total tape length is 526729216 bytes. #如何取定文件文件集的对应关系,有时想使用某个安装文件, 但没有安装包含该文件文件集,找到文件集来安装所需文件 首先确认系统中已经安装了“bos.content_list”文件集(fileset), 如果没有安装, 请使用smitty installp进行安装. 运行which_fileset命令, 根据文件查找对应的文件集. 例如: #which_fileset iostat /usr/bin/iostat bos.acct 5.1.0.0 运行lslpp -f 命令, 查看指定文件集中包含的文件: #lslpp -f bos.acct //出于AIX系统安全考虑, 需要使某些用户只能在控制台登录使用,而不允许远程登陆使用. 更改/etc/security/user 文件中需要限制的用户的rlogin属性(rlogin = false) 当再次尝试远程登录时, 系统:Remote logins are not allowed for this account, 表示修改成功 //如何自动logout用户 有的用户登录后就长时间空闲,有可能导致安全上的问题,通过打开 /etc/profile 中 TMOUT 注释,将在设置的时间到达后自动logout用户 例如: export TMOUT=120 那么, 用户两分钟没有击键,将自动logout //AIX系统中如何限制用户所使用文件的大小(AIX小型机有大文件限制) >#smit chuser 在菜单上选择要控制的用户, 并修改下面两项: Soft FILE size [aaa] Hard FILE size [aaa] 则修改后用户的文件大小最大为aaa×512 bytes. >如何验证? 可以用该用户登录系统, 使用命令“ulimit -f”和“ulimit -Hf”可分别显示其fsize,fsize_hard的大
常见问题及处理方案 CPU使用率高的问题 通过操作系统命令top topas glance等查看top进程号,确认是系统进程还是oracle应用进程,查询当前top进程执行的操作和sql语句进行分析。 根据进程号获取在执行的sql SELECT a.osuser, a.username,b.address,b.hash_value, b.sql_text from v$session a, v$sqltext b, v$process p where p.spid = &spid and p.addr = a.paddr and a.STATUS = 'ACTIVE' and a.sql_address =b.address order by address, piece; 数据库无法连接 数据库无法连接,一般可能是如下原因造成: (1)数据库宕了 (2)监听异常 (3)数据库挂起 (4)归档目录满 (5)数据库或应用主机的网卡出现问题不能常工作 (6)应用主机到数据库主机的网络出现问题。 1、数据库宕了 立即启动数据库。 Startup 2、监听异常 此时一般体现为: 监听进程占用CPU资源大;d 监听日志异常。 此时,立即重启监听,监听重启一般能在1分钟之内完成。 Lsnrctl restart 3、数据库挂起 立即重启数据库。 Startup 4、归档目录满 (1)在没有部署OGG数据同步的情况下,立即清理归档日志文件。 (2)如果部署了OGG数据同步,查看OGG在读取的归档日志文件,立即 清理OGG不再需要的日志文件。 5、数据库或应用主机的网卡出现问题不能常工作。 立即联系主机工程师处理。 6、应用主机到数据库主机的网络出现问题。 立即联系网络维护人员查看。 CRS/GI无法启动 对于10g及11gR1版本的CRS问题 1、进入/tmp目录下,看是否产生了crsctl.xxxxx文件 如果有的话,看文件内容,一般会提示OCR无法访问,或者心跳IP无法 常绑定等信息。 2、如果/tmp目录下没有crsctl.xxxxx文件 此时查看ocssd.log文件,看是否能从中得到有价值的信息。 可能的问题:网络心跳不通。 3、/tmp目录无crsctl.xxxxx且日志中没有信息,只有停CRS时的日志信 息。 此时可能是RAC两个节点对并发裸设备的访问有问题,此时考虑: (1)停掉两个节点的CRS。 (2)两个节点先同时去激活并发VG,然后再激活VG。 (3)重新启动CRS。 对于11gR2的GI问题 分析$GRID_HOME/log/nodename目录下的日志文件,看是否能从中找出无法启动的原因。 常见问题: 1、心跳IP不同。 2、ASM实例无法启动。 对CRS的故障诊断和分析,参加本文档中RAC部分的MOS文档. 数据库响应慢 应急处理步骤: (1)找到占用CPU资源大的sql或者模块,然后停掉此应用模块。 (2)如果属于由于种种原因引起的数据库hang住情况,立即重启数据 库,此时重启需要约15分钟时间。 重要说明: 如果重启数据库的话,会有如下负面影响: (1)要kill掉所有连接到数据库中的会话,所有会话都会回滚。 (2)立即重启的话,不能获取并保留分析数据库挂起原因的信息,在后续分析问题时,没有足够信息用于分析问题产生的根本原因。 一般常重启的话,都需要手动获取用于分析数据库重启原因的信息,以便编写分析告,但是在最长情况下,获取日志信息可能就要40分钟时间。此时一般做systemstate dump,且如果是rac情况的话,需要2个节点都做,且需要做2次或以上。 常规处理步骤,分如下几种情况处理: (1)所有业务模块都慢。 (2)部分业务模块慢。 (3)数据库hang住。 所有业务模块都慢 此时首先查看系统资源,看是否属于CPU资源使用率100%的问题,如果是,参考本章“CPU使用率高的问题”解决办法。如果系统资源常,那很可能是数据库hang住了,此时参考数据库Hang部分。 部分业务模块慢 分析运行慢的模块的sql语句: (1)看是否是新上的sql。 (2)看执行计划是否高效。 (3)优化运行慢的模块的sql语句。 数据库hang住 应急处理方式:重启数据库。 常规处理方式: (1)分析alert日志,看是否能从alert日志中,可以很快找到引起问题的原 因。 (2)做3级别的hanganalyze,先做一次,然后隔一分钟以后再做一次。 并分析hanganalyze 生成的trace文件,看是否可以找到引起数据库hang 住的会话的信息。 (3)做systemstate dump 此时生成systemstate dump的时间会比较长,尤其是在会话数量较多的情 况下。且生成dump文件的大小较大,在G级别以上。在生成一次以 后,过一分钟再收集一次,另外如果是RAC,那么两个节点都需要收 集。 对hang做dump请参考“对数据库HANG做DUMP一章”。 数据误删除 此问题,没有应急办法,只能按如下步骤处理: 1、对于10g及以上版本,看是否可以通过闪回进行恢复。 2、查看测试环境数据库,看其中是否有需要的数据。 3、使用备份进行恢复,此方法一般花费时间较长。 快速shutdown数据库 1. 停止监听 2. 做一个检查点操作 SQL> alter system checkpoint; 3. 杀掉所有LOCAL=NO的操作系统进程 AIX、HP-UX、Linux、Solaris: $ ps -ef|grep $ORACLE_SID| grep LOCAL=NO | grep -v grep |awk '{print $2}'|xargs -i kill -9 {} Windows: SQL> select 'orakill ' || (select value from v$parameter where name = 'instance_name') || ' ' ||p.spid from v$process p, v$bgprocess bp where p.ADDR = bp.PADDR(+) and bp.PADDR is null and p.SPID is not null; 在命令行执行: C:\> orakill db1 7642 C:\> orakill db1 7644 4. 停止数据库 SQL> shutdown immediate 清理分布式事务 -- 9i需要设置_sum_debug_mode SQL> alter session set "_smu_debug_mode" = 4; alter session set nls_date_format='YYYY-MM-DD HH24:MI:SS'; column local_trna_id format a20 column global_tran_id format a25 SELECT LOCAL_TRAN_ID, GLOBAL_TRAN_ID, FAIL_TIME,STATE, MIXED FROM DBA_2PC_PENDING; LOCAL_TRAN_ID GLOBAL_TRAN_ID FAIL_TIME STATE MIX -------------- ------------------------- -------------------- ---------------- --- 12.29.103137 TAXIS.9572b613.12.29.103137 30-aug-2011 10:09:11 collecting no SQL> commit force '12.29.103137'; Commit complete. SQL> EXECUTE DBMS_TRANSACTION.PURGE_LOST_DB_ENTRY('12.29.103137'); PL/SQL procedure successfully completed. SQL> commit; -- 清理每个分布式事务都需要commit; 数据泵 1. 相关参数 PARALLEL参数考虑 可以设置成物理CPU(不是逻辑CPU)数的两倍数目,然后调整 对于Data Pump Export,PARALLEL参数必须要小于等于dump files数 对于Data Pump Import,PARALLEL不要比dump文件数大很多,可以大一些。这个参数也指定了导入时创建索引的并行度。 PARALLEL只允许在企业版使用。 nohup expdp system/manager schemas=kdjm DIRECTORY=DUMP_FILES PARALLEL=3 dumpfile=expCASES_%U.dmp logfile=nnsiexp2008_12_28.log & 通配符 %U,它指示文件将按需要创建,格式将为expCASES_nn.dmp,其中nn 从 01 开始,然后按需要向上增加 相关监控 -- 监控长事务 set linesize 120 column opname heading 'Operation' format a25 column target heading 'Target' format a15 column pct heading 'Percent' format 999 column es heading 'Elapsed|Seconds' format 999999 column tr heading 'Time|Remaining|Seconds' format 99999 column program format a30 column machine format a16 select L.sid ssid, substr(opname,1,25) opname, target, trunc((sofar/totalwork)*100) pct, to_char(60*sofar*8192/(24*60*(last_update_time-start_time))/1024/1024/60, '9999.0') Rate, round(elapsed_seconds/60, 2) es, round(time_remaining/60, 2) tr, program, machine from v$session_longops L, v$session s where time_remaining > 0 and l.sid = s.sid order by start_time; 坏块恢复 在遇到坏块的时,一般应按以下的流程来处理: 1 如果坏块的对象是索引,重建索引 2 使用备份来进行恢复 3 使用10231事件,或者DBMS_REPAIR.SKIP_CORRUPT_BLOCKS过程,让oracle跳过坏块,然后用exp导出表和使用CREATE TABLE AS创建新表。 4 尝试使用SQL脚本将完好的数据复制到一个新表中,或者用EXP配合QUERY参数导出完好的数据。 5 手工修改坏块。 有两种情况是不能使用事件10231和DBMS_REPAIR.SKIP_CORRUPT_BLOCKS来跳过坏块的: 1 硬件问题造成OS层不能读取数据。 2 表中的非数据块,或者说是元数据块。比如段头,Extent Map块。这种坏块是不能跳过的。 3 在表中存在有其他异常的块,从单个块来看都没有损坏,checksum值也是确的,但是有的块在段内却是有问题的。比
这个误是由于在Windows系统中,另一个程序使用指定的文件,因此无法访问。这可能是因为文件在被其他程序打开或被其他进程占用。解决这个问题的方法有几种。 首先,你可以尝试关闭使用文件的程序或进程。你可以通过任务管理器来查找并结束相关的进程。然后,再次尝试删除访问文件。 如果关闭相关进程无效,你可以尝试重启计算机。重启后,所有的进程都会被关闭,这样你就可以访问删除文件了。 另外,你还可以使用一些工具来查找并解决文件被占用的问题。例如,可以使用"Process Explorer"这样的工具来查找并结束使用文件进程。 最后,如果以上方法都无效,你可以尝试修改文件的权限。右键点击文件,选择"属性",然后在"安全"选项卡中修改文件的权限,确保你有足够的权限来访问删除文件。 总结起来,解决"PermissionError: \[WinError 32\] 另一个程序使用文件进程无法访问"的方法包括关闭相关进程、重启计算机、使用工具查找并结束进程,以及修改文件的权限。希望这些方法能够帮助你解决问题。 #### 引用[.reference_title] - *1* *2* [【纠】——误:PermissionError: [WinError 32] 另一个程序使用文件进程无法访问。“+解决方案](https://blog.csdn.net/qq_45769063/article/details/124521984)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control_2,239^v3^insert_chatgpt"}} ] [.reference_item] - *3* [解决:PermissionError: [WinError 32] 另一个程序使用文件进程无法访问。PermissionError: ...](https://blog.csdn.net/u014546828/article/details/108367409)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control_2,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值