这是方法的主体:
// Get files from directory base on search pattern
string[] files = Directory.GetFiles(path, searchPattern, searchOption);
List<string> contents = ReadMetadataFile(path, out metaDataFilePath);
if (contents == null || contents.Count == 0)
listFiles = ProcessIfMetadataIsNull(files, metaDataFilePath);
在ProcessIfMetadataIsNull方法中,我调用一种方法来写入数据:
using (StreamWriter sw = new StreamWriter(metaDataFilePath, isAppend))
{
foreach (var item in assemblyFiles)
{
sw.WriteLine(item.GetStringToWrite());
}
}
在ReadMetadataFile方法中:
// Get meta data file path
metaDataFilePath = MetaDataFilePath(directory);
// Read meta data content
List<string> contents = ReadContentFile(metaDataFilePath);
return contents;
在MetaDataFilePath方法中:
if (!Directory.Exists(path))
Directory.CreateDirectory(path);
string metaDataFilePath = Path.Combine(path, Metadata);
if (!File.Exists(path))
File.Create(path);`
return metaDataFilePath;
第一次没有创建元数据文件,我上传了一个文件并创建了它,引发了异常。之后,我删除了存储元数据文件的目录中的所有文件。然后我再次上传,引发了异常。如果保留元数据文件,则异常消失。因此,问题来自File.Create方法。你有什么建议吗?
该错误消息无济于事,因为大多数程序员遇到此错误的最常见原因是当他们自己的进程成为阻塞的原因时(如此处所示)。因此,将错误消息归咎于“另一个进程”是不正确的。
File.Create
返回一个FileStream
; 一个与其他流相同的对象IDisposable
-当不再需要它时,应将其丢弃。这可能很简单:
string metaDataFilePath = Path.Combine(path, Metadata);
if (!File.Exists(path))
File.Create(path).Dispose();
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句