在我的应用程序中实现 XML 文件读取/写入时,我发现当我调用 XElement.Save("myfile.xml") 时,它将覆盖现有文件。
此行为是在 C#/ASP.NET 中保存文件的所有方法的默认行为还是取决于授予 ASP.NET 的权限?
如果我的应用程序将由不同的人部署在不同的托管设置上,对于在读取/写入文件时可能对我的应用程序施加的限制(如果有),我应该考虑哪些因素?
某个服务器设置是否只允许我在删除旧文件时覆盖现有文件?
当保存我的应用程序稍后将使用的文件时,App_Data 是最安全的文件夹吗?
最佳答案
默认行为问题实际上是与权限问题不同的问题...
对于将数据保存到文件的 .NET Framework 方法中的覆盖默认行为,没有单一的指导原则。对于您调用的任何给定方法,您应该调查默认行为。如果您不喜欢它,可以寻找解决方法。例如,XmlDocument.Save 方法有一个重载,它接受流而不是文件路径。您可以通过提供使用 FileMode 而不是 Create(这是 XmlDocument.Save(string) 重载所使用的)打开的 FileStream 来使用它。
无论方法尝试使用何种文件创建和/或修改方法,除非满足以下两个条件,否则文件修改尝试将失败(引发异常):
- 运行代码的用户帐户必须有权创建/删除/修改(如代码所尝试的那样)文件。
- 代码本身必须具有足够的代码访问安全权限才能进行文件修改操作。
关于c# - 覆盖文件权限 - C#/ASP.NET,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1651539/