您可以通过使用 Win32 API 将 BLOB 放入变量中来管理 FILESTREAM 数据。这样,您就可以在变量中获取 BLOB 的内容,就好像它是在记事本中打开的一样。使用替换来更新 .DOC、.DOCX 和 .RTF 文件。我不知道如何更新 PDF。
此链接包含将 BLOB 加载到 C# 代码中的变量中的 C# 代码。然后,您也可以使用从 DB 派生的路径、文件名和扩展名来保存它。这是代码的一小段引用:
//Read the data from the FILESTREAM
//BLOB.
sqlFileStream.Seek(0L, SeekOrigin.Begin);
numBytes = sqlFileStream.Read(buffer, 0, buffer.Length);
string readData = unicode.GetString(buffer);
if (numBytes != 0)
Console.WriteLine(readData);
//Here you have contents of your BLOB as if opened in Notepad. Use Replace to update .doc, .docx and .rtf files.
//Write the string, "EKG data." to the FILESTREAM BLOB.
//In your application this string would be replaced with
//the binary data that you want to write.
string someData = "EKG data.";
Encoding unicode = Encoding.GetEncoding(0);
sqlFileStream.Write(unicode.GetBytes(someData.ToCharArray()),
0,
someData.Length);
另请参阅在客户端应用程序中使用 FILESTREAM 存储。