public virtual void Split(DirectoryInfo destDir, string[] segs) { destDir.Create(); FSDirectory destFSDir = FSDirectory.Open(destDir); SegmentInfos destInfos = new SegmentInfos(); destInfos.Counter = Infos.Counter; foreach (string n in segs) { SegmentCommitInfo infoPerCommit = GetInfo(n); SegmentInfo info = infoPerCommit.Info; // Same info just changing the dir: SegmentInfo newInfo = new SegmentInfo(destFSDir, info.Version, info.Name, info.DocCount, info.UseCompoundFile, info.Codec, info.Diagnostics); destInfos.Add(new SegmentCommitInfo(newInfo, infoPerCommit.DelCount, infoPerCommit.DelGen, infoPerCommit.FieldInfosGen)); // now copy files over ICollection <string> files = infoPerCommit.GetFiles(); foreach (string srcName in files) { FileInfo srcFile = new FileInfo(Path.Combine(dir.FullName, srcName)); FileInfo destFile = new FileInfo(Path.Combine(destDir.FullName, srcName)); CopyFile(srcFile, destFile); } } destInfos.Changed(); destInfos.Commit(destFSDir); // Console.WriteLine("destDir:"+destDir.getAbsolutePath()); }
public virtual void Remove(string[] segs) { foreach (string n in segs) { int idx = GetIdx(n); infos.Remove(idx); } infos.Changed(); infos.Commit(fsDir); }
public virtual void Split(DirectoryInfo destDir, string[] segs) { destDir.Create(); FSDirectory destFSDir = FSDirectory.Open(destDir); SegmentInfos destInfos = new SegmentInfos(); destInfos.Counter = infos.Counter; foreach (string n in segs) { SegmentCommitInfo infoPerCommit = GetInfo(n); SegmentInfo info = infoPerCommit.Info; // Same info just changing the dir: SegmentInfo newInfo = new SegmentInfo(destFSDir, info.Version, info.Name, info.DocCount, info.UseCompoundFile, info.Codec, info.Diagnostics); destInfos.Add(new SegmentCommitInfo(newInfo, infoPerCommit.DelCount, infoPerCommit.DelGen, infoPerCommit.FieldInfosGen)); // now copy files over ICollection<string> files = infoPerCommit.Files(); foreach (string srcName in files) { FileInfo srcFile = new FileInfo(Path.Combine(dir.FullName, srcName)); FileInfo destFile = new FileInfo(Path.Combine(destDir.FullName, srcName)); CopyFile(srcFile, destFile); } } destInfos.Changed(); destInfos.Commit(destFSDir); // Console.WriteLine("destDir:"+destDir.getAbsolutePath()); }