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