我想做的就是:如果该文件夹不存在就创建文件夹,如果该文件夹中的该文件不存在就创建该文件,然后在该文件中追加入数据~~代码如下:
Encoder encoder = Encoding.UTF8.GetEncoder();
StreamWriter sw = null;
StringBuilder sbLog = new StringBuilder();
sbLog.Append("记录:");
sbLog.Append(string.Format("[{0}]:", DateTime.Now.ToString()));
sbLog.Append(string.Format("操作员[{0}]", ""));
sbLog.Append(string.Format("操作了功能[{0}],", commandKey));
sbLog.Append(string.Format("说明[{0}]",description)); if (!Directory.Exists(directoryPath))
{
Directory.CreateDirectory(directoryPath);
}
if (!File.Exists(filePath))
{
FileInfo file = new FileInfo(filePath);
sw = file.CreateText();
}
sw = new StreamWriter(filePath, true, System.Text.Encoding.UTF8);
sw.WriteLine(sbLog.ToString());
sw.Close();
现在是每次运行之后就提示“..正由另一进程使用,因此该进程无法访问该文件”
请问这种情况要怎么修改代码才不会出现?
Encoder encoder = Encoding.UTF8.GetEncoder();
StreamWriter sw = null;
StringBuilder sbLog = new StringBuilder();
sbLog.Append("记录:");
sbLog.Append(string.Format("[{0}]:", DateTime.Now.ToString()));
sbLog.Append(string.Format("操作员[{0}]", ""));
sbLog.Append(string.Format("操作了功能[{0}],", commandKey));
sbLog.Append(string.Format("说明[{0}]",description)); if (!Directory.Exists(directoryPath))
{
Directory.CreateDirectory(directoryPath);
}
if (!File.Exists(filePath))
{
FileInfo file = new FileInfo(filePath);
sw = file.CreateText();
}
sw = new StreamWriter(filePath, true, System.Text.Encoding.UTF8);
sw.WriteLine(sbLog.ToString());
sw.Close();
现在是每次运行之后就提示“..正由另一进程使用,因此该进程无法访问该文件”
请问这种情况要怎么修改代码才不会出现?
解决方案 »
- 命名空间 “microsoft”中不存在类型或命名office
- C#把打印的内容保存在word里
- 我用编辑器插入到text字段里会增加些回车符号不只为什么???
- 请教高手:关于TLB类型库中函数返回STRING的问题,求救,在线等...
- 网站开启了缓存功能,一按F5刷新页面,图片就无法加载了
- 同一解决方案,点a个项目的按钮时,执行b项目
- [winform] 谁能详解下 Color.Transparent 设置及实现
- 求正则表达式~
- iis 413 (413) Request Entity Too Large问题
- 求C#版本 单纯形法 算法源程序
- 如何获取窗体上多个textBox的值
- 如何c#中在form中点击按钮直接打印数据报表
这句后面加一句
sw.Close();
解决 文件写的时候,正由另一进程使用,因此该进程无法访问该文件2008-11-16 18:35当在指定路径没有文件的时候最初的方法:最开始调用 if (!File.Exists(filePath))
{
File.Create(filePath);
}在进行读写操作的时候 StringWriter sw = new StringWriter(sb);
FileStream fs2 = new FileStream(filePath, FileMode.Open);
byte[] content = Encoding.Default.GetBytes(sb.ToString());
fs2.Write(content, 0, content.Length);
fs2.Flush();
fs2.Close();就会出现“文件写的时候,正由另一进程使用,因此该进程无法访问该文件”分析问题是原因是 FileStream fs2 = new FileStream(filePath, FileMode.Open);本身就可以创建新文件,但是前面已经创建了文件,进程没有结束所以该用流创建文件 if (!File.Exists(filePath))
{
FileStream fs1 = File.Create(filePath);
fs1.Close();
}当流创建文件后,关闭流,就不会出现类似的问题