-1

如果它不存在,我正在尝试创建一个 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);
    }
4

1 回答 1

2

File.Create()返回FileStream可用于执行文件 IO 的 a。虽然FileStream是开放的(在你的情况下,它会保持开放状态,因为你不调用既不调用也不知道多长时间Close()Dispose(),它不允许其他任何人访问它(实际上,事情有点复杂),这就是你的WriteAllLines()电话失败的原因。

于 2016-07-28T07:30:54.670 回答