在处理web应用程序时,从文件中删除只读属性

本文关键字:文件 删除 只读属性 处理 web 应用程序 | 更新日期: 2023-09-27 18:18:12

如何在c#中处理web应用程序时从文件中删除只读属性。同样,我也可以在windows应用程序上这样做,通过以下代码:

FileInfo file = new FileInfo(@"D:'Test'Sample.zip");
if ((file.Attributes & FileAttributes.ReadOnly) == FileAttributes.ReadOnly)
{
    file.IsReadOnly = false;
}

相同的代码我在web应用程序中尝试过,它没有删除只读属性。请帮我解决一下。

在处理web应用程序时,从文件中删除只读属性

如果应用程序写入磁盘,运行web应用程序的应用程序池标识将需要写访问。你需要设置你的应用程序池,你需要选择IIS AppPool'YourApplicationPool,其中YourApplicationPool是你新创建的应用程序池,而不是NT Authority'Network Service。你可以在这里和这里找到更多信息

下面的示例通过对文件应用Archive和Hidden属性来演示GetAttributes和SetAttributes方法。

从http://msdn.microsoft.com/en-us/library/system.io.file.setattributes.aspx

 using System;
 using System.IO;
 using System.Text;
class Test 
{
public static void Main() 
{
    string path = @"c:'temp'MyTest.txt";
    // Create the file if it exists. 
    if (!File.Exists(path)) 
    {
        File.Create(path);
    }
    FileAttributes attributes = File.GetAttributes(path);
    if ((attributes & FileAttributes.Hidden) == FileAttributes.Hidden)
    {
        // Show the file.
        attributes = RemoveAttribute(attributes, FileAttributes.Hidden);
        File.SetAttributes(path, attributes);
        Console.WriteLine("The {0} file is no longer hidden.", path);
    } 
    else 
    {
        // Hide the file.
        File.SetAttributes(path, File.GetAttributes(path) | FileAttributes.Hidden);
        Console.WriteLine("The {0} file is now hidden.", path);
    }
}
private static FileAttributes RemoveAttribute(FileAttributes attributes, FileAttributes attributesToRemove)
{
    return attributes & ~attributesToRemove;
}
}

如果你需要更多的帮助,请告诉我。

编辑

还要确保网络服务和IUSR可以访问web应用程序。