C# 和 File.WriteAllText 错误

标签 c# file-permissions

我正在构建一个必须将用户输入写入文件的简单 C# 应用程序。

我的第一个问题是我希望用户能够设置设置文件的路径,但我希望程序能够在以下启动时读取设置文件。

我的第二个问题是,如果我使用类似的东西:

    File.WriteAllText(@"C:\Users\Public\settings.settings", message);

我收到以下错误:

    System.Security.SecurityException: Request for the permission of type 
    'System.Security.Permissions.FileIOPermission, mscorlib, Version=2.0.0.0, 
    Culture=neutral, PublicKeyToken=b77a5c561934e089' failed. at 
    System.Security.CodeAccessSecurityEngine.Check(Object demand, StackCrawlMark& 
    stackMark, Boolean isPermSet)   at System.Security.CodeAccessPermission.Demand()
       at System.IO.FileStream.Init(String path, FileMode mode, FileAccess access, 
    Int32 rights, Boolean useRights, FileShare share, Int32 bufferSize, FileOptions 
    options, SECURITY_ATTRIBUTES secAttrs, String msgPath, Boolean bFromProxy)
    at System.IO.FileStream..ctor(String path, FileMode mode, FileAccess access, 
    FileShare share, Int32 bufferSize, FileOptions options, String msgPath, Boolean bFromProxy)

    at System.IO.FileStream..ctor(String path, FileMode mode, FileAccess access, 
    FileShare share, Int32 bufferSize, FileOptions options)

     at System.IO.StreamWriter..ctor(String path, Boolean append, Encoding encoding, Int32 bufferSize)
    at System.IO.StreamWriter..ctor(String path, Boolean append, Encoding encoding)
    at System.IO.File.WriteAllText(String path, String contents, Encoding encoding)
    at IMDBGrabber.frmSettings.writeToFile(String p)
    The action that failed was: Demand

    The type of the first permission that failed was: System.Security.Permissions.FileIOPermission

    The Zone of the assembly that failed was: MyComputer

有什么想法吗?

最佳答案

令人惊讶的是,并非所有用户都可以访问 "C:\Users\Public"

尝试将文件放入 Environment.GetFolderPath(Environment.SpecialFolder.CommonApplicationData) + "\\settings.settings";

所有用户都应该有权在那里写。

还请考虑使用特定于应用程序的子文件夹。

关于C# 和 File.WriteAllText 错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9533820/

相关文章:

c# - 从强类型 Razor View 收集数据

c# - 在另一个表单上设置标签文本时出现问题

c# - 使用正则表达式平衡组来匹配嵌套标签

java - File.canWrite 和 Files.isWritable 在 Linux 上没有给出正确的值

python - 使用python检查ntfs文件系统的写入权限

c# - 从 xml 模式生成的 CS 类

c# - 无法在 asp.net core 2.0 中发布原始类型

android - 无法在 Oreo 上选择文件

perl - 如何使用 Perl 递归设置只读权限?

c# - 在远程服务器中创建文件夹时出错