【发布时间】:2016-07-28 07:25:51
【问题描述】:
如果它不存在,我正在尝试创建一个 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);
}
【问题讨论】:
-
for循环对我来说似乎有点奇怪;假设您在folderToSearch中有 10 个文件;然后您删除并创建相同的fileToEdit文件 10 次,因为该字符串在您提供的代码中没有更改。 -
空的
catch块对您或其他任何人都没有帮助。 -
@mcy 哦,是的,谢谢,我需要把它从 for 循环中取出
标签: c# file directory system.io.file