1 using MongoDB.Driver; 2 using MongoDB.Driver.GridFS; 3 using System.IO; 4 5 namespace Wisdombud.Mongo 6 { 7 /// <summary> 8 /// 9 /// </summary> 10 public class MongoFileBll 11 { 12 private MongoDatabase repository; 13 /// <summary> 14 /// 15 /// </summary> 16 /// <returns></returns> 17 public MongoCursor<MongoGridFSFileInfo> FindAll() 18 { 19 return this.repository.GetGridFS(MongoGridFSSettings.Defaults).FindAll(); 20 } 21 /// <summary> 22 /// 23 /// </summary> 24 /// <param name="pConnectionstring"></param> 25 public MongoFileBll(string pConnectionstring) 26 { 27 MongoUrl mongourl = MongoUrl.Create(pConnectionstring); 28 var client = new MongoClient(mongourl); 29 MongoServer server = client.GetServer(); 30 this.repository = server.GetDatabase(mongourl.DatabaseName); 31 } 32 /// <summary> 33 /// 34 /// </summary> 35 /// <param name="filePath"></param> 36 public void UploadFile(string filePath) 37 { 38 FileInfo fi = new FileInfo(filePath); 39 this.repository.GetGridFS(MongoGridFSSettings.Defaults).Upload(filePath, fi.Name); 40 } 41 /// <summary> 42 /// 43 /// </summary> 44 /// <param name="filePath"></param> 45 /// <param name="fileName"></param> 46 47 public void UploadFile(string filePath, string fileName) 48 { 49 this.repository.GetGridFS(MongoGridFSSettings.Defaults).Upload(filePath, fileName); 50 } 51 52 /// <summary> 53 /// 54 /// </summary> 55 /// <param name="fileName"></param> 56 /// <param name="filePath"></param> 57 public void DownloadFile(string fileName) 58 { 59 this.repository.GetGridFS(MongoGridFSSettings.Defaults).Download(fileName); 60 } 61 /// <summary> 62 /// 63 /// </summary> 64 /// <param name="fileName"></param> 65 public void DeleteFile(string fileName) 66 { 67 this.repository.GetGridFS(MongoGridFSSettings.Defaults).Delete(fileName); 68 } 69 /// <summary> 70 /// 71 /// </summary> 72 public void DeleteAll() 73 { 74 foreach (var inst in this.repository.GetGridFS(MongoGridFSSettings.Defaults).FindAll()) 75 { 76 inst.Delete(); 77 } 78 } 79 } 80 }
使用方法
1 MongoFileBll tl = new MongoFileBll("mongodb://127.0.0.1:27017/chzhaotest"); 2 string folder = @"D:\Wisdombud\2016\20160324_Wisdombud.Mongo\SourceCode\Wisdombud.Mongo.Sample\bin\Debug"; 3 DirectoryInfo di = new DirectoryInfo(folder); 4 foreach (var file in di.GetFiles()) 5 { 6 tl.UploadFile(file.FullName, Guid.NewGuid().ToString()); 7 } 8 var aaa = tl.FindAll(); 9 foreach (var inst in aaa) 10 { 11 Console.WriteLine(inst.Name); 12 }