文件读权限被拒绝

本文关键字:拒绝 权限 文件 | 更新日期: 2023-09-27 18:17:40

我在VS2008项目中使用以下c#代码读取一堆文件时遇到了问题

public void FindFiles()
{
    //Root
    targetPath = Directory.GetDirectoryRoot(Directory.GetCurrentDirectory()) + "WriteToCSVFolder";
}
public void ReadFiles()
{
    fileNameList_Original = Directory.GetFiles(targetPath);
    string defaultFileName = "file_";
    int counter = 0;
    foreach (string fileName in Directory.GetFiles(targetPath))
    {
        fullFileText_Original[counter] = File.ReadAllText(targetPath);
        //fileNameList_Original[counter]
        counter++;
    }
    counter = 0;
}

现在请考虑我只是快速滴答这个,所以我还没有麻烦做优化或任何事情。刚刚注意到,当我在W7 64位上禁用未打开的文件和UAC(用户帐户控制)进行读取操作时,也不会通过网络dropbox或其他任何东西共享它。这只是一些ABC BLA FOO文件,我刚刚制作并想测试,它们在我的系统文件夹中标有targetpath的正确目录中,并且程序正在从正确的驱动器运行。

这只是代码中的一些愚蠢的东西还是?

对了,应用程序被标记为完全信任。

任何想法?

编辑:

从下面的评论部分实现新的想法:

更改代码
public void ReadFiles()
{
    fileNameList_Original = Directory.GetFiles(targetPath);
    string defaultFileName = "file_";
    int counter = 0;
    foreach (string fileName in Directory.GetFiles(targetPath))
    {
        fullFileText_Original[counter] = File.ReadAllText(targetPath);
        //fileNameList_Original[counter]
        counter++;
    }
    counter = 0;
}

public void ReadFiles()
{
    //Store all files names in a string array in one go
    fileNameList_Original = Directory.GetFiles(targetPath);
    string defaultFileName = "file_";
    int counter = 0;
    foreach (string fileName in Directory.GetFiles(targetPath))
    {
        //removed the storing file names, was redundant
        //added the suggested idea to the proper array
        fullFileText_Original[counter] = File.ReadAllText(fileName);
        //fileNameList_Original[counter]
        counter++;
    }
    counter = 0;
}

在文件上给我nullreference异常,不确定我的结论应该是从这个错误。我承认我现在很累,可能会在回家的路上意识到它到底是什么:)

最后的编辑:

文件读权限被拒绝

代码运行良好。我不得不被解雇,因为我没有解决这个问题......试图将值赋给未初始化的数组并忽略任何可变大小.......从未发生过!

    foreach (string fileName in Directory.GetFiles(targetPath))
    {
        fileNameList_Original.Add(fileName);
        foreach (string text in File.ReadAllLines(fileName))
        {
            fullFileText_Original.Add(text);
            //fileNameList_Original[counter]
        }
    }

感谢您发现fileName而不是targetPath SGB!这也是我犯的一个错误!现在剩下的问题我自己解决了。