C#:创建后无法访问文件

本文关键字:访问 文件 创建 | 更新日期: 2023-09-27 17:59:10

如果json文件不存在,我会尝试创建一个json文件,然后将所有行写入其中。文件的创建是可行的,但我遇到的问题是file。WriteAllLines表示"该进程无法访问该文件,因为另一个进程正在使用该文件"。

这是我的代码:

public void generateFolderFiles(string folderToSearch, string fileToEdit) {
        string[] filesToSearch = Directory.GetFiles(folderToSearch);
        string completeJson = "";
        for(int i=0;i<filesToSearch.Length;i++) {
            try {
                File.Delete(fileToEdit);
                File.Create(fileToEdit);
            } catch(Exception e){}
            string[] fsLines = File.ReadAllLines(filesToSearch[i]);
            string fsText = string.Join("", fsLines);
            fsText=fsText.Replace("[", "").Replace("]", "");
            completeJson+=fsText;
        }
        completeJson="["+completeJson+"]";
        string[] lnes = new string[1]{completeJson};
        File.WriteAllLines(fileToEdit, lnes);
    }

C#:创建后无法访问文件

File.Create()返回一个FileStream,您可以使用它来执行文件IO。虽然FileStream是打开的(在您的情况下,它会打开多久,因为您既不调用Close(),也不调用它的Dispose()),但它不允许其他人访问它(实际上,事情有点复杂),这就是WriteAllLines()调用失败的原因。