我有一个Windows服务中的方法如下:
我在我的Windows服务中有一个以下方法:
System.IO.File.Copy(path, ConfigurationManager.AppSettings["BulkInsertGiftRegisterCreatorDirectory"] + System.IO.Path.GetFileName(path));
Loyalty.Entity.Base.FileInfo file = new Loyalty.Entity.Base.FileInfo();
file.FileName = path;
request.Object = file;
ResponseBase response = new ResponseBase(request);
RequestConnection connection = new RequestConnection("cn");
FileManager fileManager = new FileManager(request, connection);
response = fileManager.OfflineGiftRegisterBulkInsert();
System.IO.File.Delete(ConfigurationManager.AppSettings["BulkInsertGiftRegisterCreatorDirectory"] + System.IO.Path.GetFileName(path));
// here is the part of stored procedure that uses file
SELECT @SCRIPT= 'BULK INSERT GIFT_CARD.GIFT_TEMP'
+' FROM '''
+ @FILE_PATH
+''' WITH ('
+'FIELDTERMINATOR = '','','
+ 'KEEPNULLS'
+');'
我可以手动从文件系统删除文件,但是这段代码会提示错误“哎呀!System.IO.IOException:另一个进程正在使用文件 'filename',因此无法访问。”
我在stackoverflow和其他地方搜索了类似的问题,但没有找到任何有用的信息。Copy或Delete方法返回void,并且我的代码中没有流可供处理。
该怎么解决呢?
提前致谢。