详情:
我想创建一个接受字符串输入的位图编码器方法。每次将新文件放入文件夹时,将在程序类中调用编码器将数据文件编码为 QRImage。
我将文件系统观察器与定义的“OnChange”事件处理程序一起使用,该事件处理程序检测何时创建/添加新文件到文件夹。当“OnChange”被触发时,它调用 Encoder 方法对添加到文件夹的文件进行编码。
问题:
我的文件系统观察器工作(成功检测到新文件),但是当一个新文件被添加到一个文件夹时,位图编码器,编码文件名而不是文件中的内容.
位图编码文件的方法:
`public static Bitmap Enconder(string input)
{
QRCodeGenerator Encoder = new QRCodeGenerator();
QRCodeData QR_Data =
Encoder.CreateQrCode(input,QRCodeGenerator.ECCLevel.Q);
QRCode qrCode = new QRCode(QR_Data);
Bitmap QR_bitmap = qrCode.GetGraphic(5);
return QR_bitmap;
}`
程序类中使用的System watcher方法(works)
`public static void Watch(string watch_folder)
{
FileSystemWatcher watcher = new FileSystemWatcher();
watcher.Path = watch_folder;
watcher.NotifyFilter = NotifyFilters.LastAccess | NotifyFilters.LastWrite
| NotifyFilters.FileName | NotifyFilters.DirectoryName;
watcher.Filter = "*.txt";
watcher.Created += new FileSystemEventHandler(OnChanged);`
“OnChange”事件处理程序定义(在程序类中)
` public static void OnChanged(object source, FileSystemEventArgs e)
{
string ss = @"C:\Users\Desktop\BarCodeData\*.txt";
Bitmap bmap = QR.Encoder(ss);
QR.SaveImage(bmap, ss, @"C:\Users\Desktop\BarCodeImages\");
}`
Save Image方法用于将QR图像保存到文件夹方法(更多细节,不是问题)
` public static void SaveImage(Bitmap b, string data, string path)
{
if (!Directory.Exists(path))
{
Directory.CreateDirectory(path);
}
Image i = b;
var v = data.Split('|'); //data should be time loaded | program | MSN |....
string date = DateTime.Now.ToString().Replace('/', '_').Replace(':', '_');
var filename = date + ".png";
i.Save(path + filename, System.Drawing.Imaging.ImageFormat.Png);
}`
*string ss @"C:\Users\Desktop\BarCodeData*.txt"; 我做了 .txt 来接受任何文本文件,但是我做错了格式吗?