首页 > 系统相关 >C# 报错:xxx正由另一进程使用,因此该进程无法访问此文件

C# 报错:xxx正由另一进程使用,因此该进程无法访问此文件

时间:2023-06-17 15:22:23浏览次数:39  
标签:文件 FileStream 无法访问 System Read 报错 IO 进程

https://www.cnblogs.com/whr2071/p/16070974.html

出现原因

使用FileStream打开一个文件后又想要操作这个文件;

业务场景

我打开这个文件后,获取其md5,之后再把这个文件移动到指定位置。
后续移动时就会报这个错。

分析

System.IO.FileStream fst = new System.IO.FileStream(filePath, FileMode.Open, FileAccess.Read, FileShare.Read, 8192)

FileStream FileMode.Open 默认是一种只读模式,当然这里写明了(第四个参数:FileShare.Read)。
使用这种模式打开文件后,就不能再被其他文件操作了,操作就会报错:xxx正由另一进程使用,因此该进程无法访问此文件
解决这个问题很简单,2种思路
第一种思路:
FileStream使用完关闭就可以了。2种关闭方式。
第1种就是我使用的using(){ }。这种,会在using结束后自动释放。
第2种就是手动关闭fst.Close();
第二种思路:
不以只读形式打开就完了,也就是修改上述第四个参数
System.IO.FileStream fst = new System.IO.FileStream(filePath, FileMode.Open, FileAccess.Read, FileShare.ReadWrite, 8192)
我选的是第一种,就觉得同时能被多个进程读写可能水很深,我把握不住。

标签:文件,FileStream,无法访问,System,Read,报错,IO,进程
From: https://www.cnblogs.com/Dongmy/p/17487501.html

相关文章

  • selenium headless报错Message: unknown error: failed to wait for extension backgr
    selenium进行打开chrome浏览器操作时报错。完整报错:selenium.common.exceptions.WebDriverException:Message:unknownerror:failedtowaitforextensionbackgroundpagetoload:chrome-extension://jppfbclhbammkjacehdkldjfgminfgca/_generated_background_page.html......
  • 4、第一次构建项目报错处理
     翻译如下:编译错误此项目包含Java编译错误,可能导致自定义视图呈现失败。先修复编译问题。解决方案如下:找到File->InvalidateCaches/Restart清除缓存及重启Studio 点击InvalidateCaches/Restart清除缓存及重启Studio 解决了哦,没有报错了 ......
  • Git:解决报错:fatal: The remote end hung up unexpectedly
    问题描述:Git在推送项目时报错:fatal:Theremoteendhungupunexpectedly。问题原因:推送的文件太大。解决方法:1.修改设置gitconfig文件的postBuffer的大小。(设置为500MB)$gitconfig--localhttp.postBuffer524288000注:--local选项指定这个设置只对当前仓库生效。......
  • Ubuntu20.04下 vsftpd.service 状态报错code=exited, status=2解决以及简单配置
    1、状态报错,启动失败 2、主要原因是ipv4和ipv6不能同时被监听,所以,注释ipv63、重启服务并且登录localhost,输入用户名和密码,显示登录成功 4、配置指定目录,确保对应的值如下anonymous_enable=NOlocal_enable=YESwrite_enable=YESchroot_local_user=YES 5、添加以下......
  • 进程间通信
    进程间通信概述进程间通信主要有:管道通信,消息队列,共享内存,信号量现代进程间通信方式:管道通信管道是单工的命名管道mkfifo在文件系统中以管道文件存在管道通信:管道创建通过pipe(intfd[2])创建管道通信,其中fd[0]为读端,fd[1]为写端在父子进程间利用管道进行通信时,由于......
  • 进程
    进程c程序启动过程c程序启动,在mian执行前先执行例程,收集命令行参数进程终止atexit()函数进程终止查看系统进程命令:ps-aux进程状态进程调度进程状态变化进程创建使用fork()创建子进程,子进程会赋值父进程的内存空间对于带缓冲区的io函数,缓冲区在堆,子进......
  • 运行python -m uiautomator2 init报错AttributeError: module 'collections' has no a
    报错信息:Traceback(mostrecentcalllast):File"E:\Carte\BB\17-SiteLeadership\alte\IonelBalauta\Aryeht\Task1-Traducetotsite-ul\DoarGoogleWeb\Andreea\Meditatii\Sedinta9(2022)(EMAIL)\BEBE-PARSING-Python(fararedenumire2).p......
  • SpringBoot集成Swagger报错:Failed to start bean 'documentationPluginsBootstrapper'
    本文章向大家介绍SpringBoot集成Swagger报错:Failedtostartbean'documentationPluginsBootstrapper';,主要包括SpringBoot集成Swagger报错:Failedtostartbean'documentationPluginsBootstrapper';使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需......
  • CMakeLists --- 设置rpath_link方法 编译报错try using -rpath or -rpath-link)
    指令:add_link_options("LINKER:-rpath-link,${THIRD_LIBS_DIR}")THIRD_LIBS_DIR:需要链接的库的目录作用:编译生成一个可执行文件时,依赖一个动态库A,动态库A同时又依赖动态库B.如果我们没有显示集成动态库B时,链接器会去-rpath-link设置的目录中寻找依赖项。 例子:1.库A,依赖库B......
  • CKS 考试题整理 (13)-使用 sysdig 检查容器里里的异常进程
    Task使用运行时检测工具来检测Podtomcat单个容器中频发生成和执行的异常进程有两种工具可供使用:sysdigfalco注:这些工具只预装在cluster的工作节点,不在master节点。 使用工具至少分析30秒,使用过滤器检查生成和执行的进程,将事件写到/opt/KSR00101/incidents/summ......