Я хочу добавить файл .mdb в ресурс, и во время работы я хочу скопировать файл .mdb в другое место, выполнить подключение, запустить его и удалить скопированный файл .mdb, пока я закончил обработку с файлом .mdb.
Как это сделать с помощью Assembly.GetManifestStream? если не с помощью Assembly.GetManifestStream, каковы другие способы, с помощью которых я могу это сделать?
2 ответа
Да, Assembly.GetManifestStream
лучше всего сочетается с BinaryReader
и BinaryWriter
. А именно:
// assembly is Assembly containing the resource
// path is string containing path to write to
Stream source = assembly.GetManifestResourceStream("Namespace.filename.mdb");
BinaryReader br = new BinaryReader(source);
BinaryWriter bw = new BinaryWriter(path, FileMode.Create);
byte[] buffer = new byte[256];
int count = 0;
while((count = br.Read(buffer, 0, 256)) > 0) {
bw.Write(buffer, 0, count);
}
Очевидно, что все эти IDisposable
должны быть заключены в блок using
.
Почему вы не можете просто использовать копию на уровне файлов? Не уверен, почему вы хотите сделать это с потоком. Просто найдите путь к файлу mdb и
File.Copy(path1,path2);
File.Copy
, а затем File.Delete
.
Похожие вопросы
Новые вопросы
c#
C# (произносится как «see Sharp») — это высокоуровневый мультипарадигменный язык программирования со статической типизацией, разработанный Microsoft. Код C# обычно нацелен на семейство инструментов и сред выполнения Microsoft .NET, которое включает в себя .NET, .NET Framework, .NET MAUI и Xamarin среди прочих. Используйте этот тег для ответов на вопросы о коде, написанном на C#, или о формальной спецификации C#.