Tôi nhận dữ liệu nhị phân từ trường cơ sở dữ liệu SQL Server và đang tạo tài liệu cục bộ trong thư mục mà ứng dụng của tôi có quyền. Tuy nhiên tôi vẫn nhận được lỗi được chỉ định trong tiêu đề. Tôi đã thử nhiều đề xuất được đăng trên web bao gồm những đề xuất trong các bài đăng trước trên Stackoverflow. Tôi cũng đã sử dụng ProcessExplorer> Find Handle để xác định vị trí khóa và nó sẽ trả về không có gì giống như tập tin không bị khóa.Quá trình không thể truy cập tệp vì nó đang được sử dụng bởi một quy trình khác
Tôi đang sử dụng mã bên dưới để lưu tệp vào hệ thống tệp và sau đó tôi cố gắng sao chép tệp này sang vị trí mới sau trong quy trình đăng ký trong một phương pháp khác. Đây là phương thức sao chép có đường dẫn của tệp mới được tạo ra để ném ngoại lệ.
Bản thân tệp được tạo bằng nội dung của nó và tôi có thể mở tệp thông qua Windows Explorer mà không gặp bất kỳ sự cố nào.
Tôi có thiếu điều gì đó hoàn toàn hiển nhiên không? Tôi có tạo đúng tệp từ cơ sở dữ liệu không? Bất kỳ trợ giúp nào về giải quyết hoặc chẩn đoán tốt hơn vấn đề sẽ được đánh giá cao.
// Get file from DB
FileStream fs = new FileStream(
"C:\myTempDirectory\myFile.doc", FileMode.OpenOrCreate, FileAccess.Write);
BinaryWriter br = new BinaryWriter(fs);
br.Write("BinaryDataFromDB");
fs.Flush();
fs.Close();
fs.Dispose();
// Copy file
File.Copy(sourceFileName, destinationFilename, true);
Bạn có đăng mã thực tế không? Có vẻ như có một vấn đề vô hình mà có thể nằm ẩn ở nơi khác ... – Bloodyaugust
Tôi biết bạn có thể chỉ cần thay thế văn bản cho mục đích câu hỏi của bạn, nhưng đường dẫn tệp của bạn phải là '@" C: \ myTempDirectory \ myFile.doc "' vì thoát dấu gạch chéo ngược. – Jacob
Bạn có chắc chắn ngoại lệ không nói về đích Tên tệp đang được sử dụng bởi một quy trình khác không? – Jacob