如何在 ShareDenyWrite 模式下打开 StreamReader?

2023-11-23

我如何打开一个StreamReader with FILE_SHARE_READ, FILE_SHARE_WRITE, FILE_SHARE_DELETE?


同样的问题,稍微扩展一下

我如何打开一个StreamReader这样我就可以读取编码的文本文件,并使用共享选项以便另一个进程可以读取该文件?

我如何打开一个StreamReader这样我就可以读取编码的文本文件,并具有共享选项,以便另一个进程可以在我读取文件时修改该文件?

我如何打开一个StreamReader这样我就可以读取编码的文本文件,并具有共享选项,以便另一个进程可以在我读取文件时删除该文件?


同样的问题,稍微扩展一下

在.NET Framework类库中有一个类叫做StreamReader。这是唯一一个旨在阅读的课程"text",这就是为什么它源自抽象基础TextReader班级。这TextReader/StreamReader允许您指定您尝试打开的文件使用的编码,并可以为您解码文件,返回Strings的文本。

一旦我打开一个文件StreamReader:

var sr = new StreamReader(path);

文件被锁定,其他进程无法访问modify or delete文件。我需要的是相当于FileStream班级的FileShare枚举:

  • None:拒绝共享当前文件。任何打开文件的请求(通过此进程或另一个进程)都将失败,直到文件关闭。
  • Read":允许随后打开文件进行读取。如果未指定此标志,任何打开文件进行读取的请求(通过此进程或另一个进程)都将失败,直到文件关闭。但是,即使指定了此标志,可能仍需要额外的权限才能访问该文件。
  • Write:允许随后打开文件进行写入。如果未指定此标志,则任何打开文件进行写入的请求(通过此进程或另一个进程)都将失败,直到文件关闭为止。但是,即使指定了此标志,可能仍然需要额外的权限才能访问该文件。
  • 读写:允许随后打开文件进行读取或写入。如果未指定此标志,则任何打开文件进行读取或写入的请求(通过此进程或另一个进程)都将失败,直到文件关闭为止。但是,即使指定了此标志,可能仍然需要额外的权限才能访问该文件。
  • Delete:允许随后删除文件。

除此之外,由于显而易见的原因,我不能使用FileStream- 必须使用StreamReader.

我怎样才能打开一个StreamReader with FileShare.ReadWrite | FileShare.Delete?


StreamReader 有一个构造函数可以采取流。因此,不要使用采用字符串路径的构造函数,而是首先创建一个FileStream加上你想要的选项,然后通过FileStream to the StreamReader构造函数。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何在 ShareDenyWrite 模式下打开 StreamReader? 的相关文章

随机推荐

  • Django 服务器错误:端口已在使用中

    重新启动 Django 服务器显示以下错误 this port is already running 此问题专门出现在 Ubuntu 上 而不是其他操作系统上 如何释放端口以重新启动服务器 更简单的解决方案只需键入sudo fuser k
  • 24小时制转换为12小时制?

    您好 我正在使用 Android 应用程序 我正在尝试弄清楚如何将 24 小时时间转换为 12 小时时间 Example 24 hour format 12 18 00 to 12 hour format 12 18pm 尝试使用Simpl
  • 将列表分割成 n 个几乎相等长度的分区[重复]

    这个问题在这里已经有答案了 我正在寻找一种快速 干净 Pythonic 的方法来将列表精确地划分为 n 个几乎相等的分区 partition 1 2 3 4 5 5 gt 1 2 3 4 5 partition 1 2 3 4 5 2 gt
  • select * from table_name where 列如 ' '

    我需要查找包含 html 代码 例如 nbsp 的记录但是当我尝试运行select from table name where column like nbsp 我收到提示询问 nbsp 的值 我猜数据库认为nbsp是一个参数 我想知道是否
  • 为什么 ad hoc ipa 在一台设备上安装失败,但在另一台具有相同 iOS 版本的设备上安装成功?

    我有一位客户 其 iPad 2 iOS 5 0 能够安装临时 ipa 但他的 iPhone 也是 iOS 5 0 完全相同的版本 在尝试使用 Windows iTunes 安装时在他的设备上收到以下消息 iTunes 同步 应用程序名称 安
  • 如何从 GitHub Actions 部署 AWS Amplify 应用程序?

    我想从 GitHub Actions 控制 Amplify 部署 因为 Amplify 自动构建 不提供GitHub环境 不观察 CI 的故障并无论如何都会进行部署 或者 要求我复制 CI 设置并在 Amplify 中重新运行它 不支持运行
  • ASP.NET 解析器错误无法加载后面的代码

    嘿我收到以下错误 解析器错误 描述 解析服务此请求所需的资源时发生错误 请查看以下特定解析错误详细信息并适当修改您的源文件 解析器错误消息 无法加载类型 AddToCart 来源错误 Line 1 Line 2 Line 3
  • 自动生成Java源代码

    我正在寻找一种方法 根据类中定义的字段 在现有 Java 源代码文件中自动生成新方法的源代码 本质上 我希望执行以下步骤 读取并解析SomeClass java 遍历源代码中定义的所有字段 添加源码方法someMethod Save Som
  • 什么是“程序类型已存在”?

    当我尝试构建我的项目时 我收到此错误 程序类型已存在 android support v4 accessibilityservice AccessibilityServiceInfoCompat Message kind ERROR tex
  • 角度反应形式:动态选择下拉值不具有约束力

    我有两个数据数组 AssociatedPrincipals 以前保存的数据 和 ReferencePrincipals 在下拉控件中填充的静态数据 我正在努力从 AssociatedPrincipals 获取先前的值以在 a 中显示 选择动
  • 如何转义 RMarkdown 块?

    我正在尝试将 RMarkdown 中的代码块的语法呈现为 pdf 最终输出应该是这样的 r some code 而不仅仅是 some code 可以在 RStudio 网站上找到解决此问题的最佳选项 请参阅有关将逐字 R 块放入 rmark
  • 将“if/else”与 OnClick 结合使用

    首先 是否可以直接在带有 onclick 属性的 html 中编写 if else 语句 如果是这样 为什么我的代码不起作用 所以这是一个按钮 Calc Input value 指的是文本输入 如果该字段为 0 或空白 我想显示错误消息 在
  • R:如何在没有辅助文件的情况下将光栅写入磁盘?

    我正在使用 R 中的 Raster 包以 ERMapper 格式 ers 编写数据集 但我对生成的 aux xml 辅助文件有问题 我实际上对此不感兴趣 简单的例子 rst lt raster ncols 15000 nrows 10000
  • cuda 中预取(通过 C 代码)

    我正在通过 C 代码在 CUDA Fermi GPU 中进行数据预取 Cuda 参考手册讨论了 ptx 级别代码的预取 而不是 C 级别代码的预取 任何人都可以向我提供一些有关通过 cuda 代码 cu 文件 预取的文档或内容吗 任何帮助
  • 使用 fputs() 将整数写入文件

    不可能做类似的事情fputs 4 fptOut 因为 fputs 不喜欢整数 我该如何解决这个问题 Doing fputs 4 fptOut 不是一个选项 因为我正在使用计数器值 关于什么 fprintf fptOut d yourCoun
  • 比较两个对象数组并检查它们是否具有共同元素

    如何在 MongoDB 中执行返回 id 的查询FirstArray and SecondArray 名称 字段中有共同的元素吗 这是集合结构 id ObjectId 58b8d9e3b2b4e07bff8feed5 FirstArray
  • 如何在 SwiftUI 中随时从子视图作为父视图访问数据?

    我是 SwiftUI 的新手 并且了解我可能需要以某种方式实现 EnvironmentObject 但我不确定在这种情况下如何实现 这是Trade class class Trade var teamsSelected Team init
  • 如何在Python中生成DOCX并将其保存在内存中?

    我的任务是从模板生成 DOCX 文件 然后通过 Flask 提供该文件 我用python docx 模板它只是 python docx 的包装器 允许使用 jinja 模板 最后他们建议使用 StringIO 仅将文件保存在内存中 所以我的
  • Google oauth 2.0 API 密码更改用户名和密码不被接受

    我有一个使用 nodemailer xoauth2 和 google APi oauth2 的表单 我上周更新了密码 从那时起我的应用程序就无法工作了 我得到 535 5 7 8 不接受用户名和密码 了解更多信息 n535 5 7 8 我尝
  • 如何在 ShareDenyWrite 模式下打开 StreamReader?

    我如何打开一个StreamReader with FILE SHARE READ FILE SHARE WRITE FILE SHARE DELETE 同样的问题 稍微扩展一下 我如何打开一个StreamReader这样我就可以读取编码的文