コード例 #1
0
ファイル: Backup.cs プロジェクト: 0-F/Backup
        public void Do_Backup()
        {
            Init_Volume();

            _LastJournal = Vol.Refresh();
            Vol.Map_Volume();
            Vol.Update(_LastJournal);
            var r = Vol.GetDirectory(SourcePath);

            if(r != null)
            {
                var dst = DestnationPath + "\\test_" + Increment.ToString();

                var src = "";
                if(Increment == 0)
                {
                    src = dst;
                } else
                {
                    src = DestnationPath + "\\test_" + (Increment - 1).ToString();
                }

                r.CopyTo(dst, src);
            }
            Increment += 1;
        }
コード例 #2
0
ファイル: NTFS_Volume.cs プロジェクト: pierredesa/Backup
        public Win32Api.USN_JOURNAL_DATA Refresh()
        {
            var old = _Current_JournalState;

            _Current_JournalState = new Win32Api.USN_JOURNAL_DATA();
            NTFS_Volume.NTFS_Functions.QueryUsnJournal(_Root_Handle, ref _Current_JournalState);//need to query the jounral to get the first usn number
            return(old);
        }
コード例 #3
0
ファイル: NTFS_Volume.cs プロジェクト: 0-F/Backup
 public NTFSVolume(string drive, Win32Api.USN_JOURNAL_DATA lastusn)
 {
     var rootpath = new DriveInfo(drive);
     _Root_Handle = NTFS_Volume.NTFS_Functions.GetRootHandle(rootpath);
     _Root = new Volume.NTFS_File(new Win32Api.UsnEntry(rootpath.Name.Replace("\\", "")));
     Lookup = new Dictionary<ulong, Journal.Volume.NTFS_File>();
     _Current_JournalState = lastusn;
 }
コード例 #4
0
ファイル: NTFS_Volume.cs プロジェクト: pierredesa/Backup
        public NTFSVolume(string drive, Win32Api.USN_JOURNAL_DATA lastusn)
        {
            var rootpath = new DriveInfo(drive);

            _Root_Handle          = NTFS_Volume.NTFS_Functions.GetRootHandle(rootpath);
            _Root                 = new Volume.NTFS_File(new Win32Api.UsnEntry(rootpath.Name.Replace("\\", "")));
            Lookup                = new Dictionary <ulong, Journal.Volume.NTFS_File>();
            _Current_JournalState = lastusn;
        }
コード例 #5
0
ファイル: NTFS_Volume.cs プロジェクト: 0-F/Backup
 public NTFSVolume(string drive)
 {
     var rootpath = new DriveInfo(drive);
     _Root_Handle = NTFS_Volume.NTFS_Functions.GetRootHandle(rootpath);
     _Root = new Volume.NTFS_File(new Win32Api.UsnEntry(rootpath.Name.Replace("\\", "")));
     _Current_JournalState = new Win32Api.USN_JOURNAL_DATA();
     Lookup = new Dictionary<ulong, Journal.Volume.NTFS_File>();
     NTFS_Volume.NTFS_Functions.QueryUsnJournal(_Root_Handle, ref _Current_JournalState);//need to query the jounral to get the first usn number
 }
コード例 #6
0
ファイル: NTFS_Volume.cs プロジェクト: pierredesa/Backup
        public NTFSVolume(string drive)
        {
            var rootpath = new DriveInfo(drive);

            _Root_Handle          = NTFS_Volume.NTFS_Functions.GetRootHandle(rootpath);
            _Root                 = new Volume.NTFS_File(new Win32Api.UsnEntry(rootpath.Name.Replace("\\", "")));
            _Current_JournalState = new Win32Api.USN_JOURNAL_DATA();
            Lookup                = new Dictionary <ulong, Journal.Volume.NTFS_File>();
            NTFS_Volume.NTFS_Functions.QueryUsnJournal(_Root_Handle, ref _Current_JournalState);//need to query the jounral to get the first usn number
        }
コード例 #7
0
ファイル: NTFS_Volume.cs プロジェクト: pierredesa/Backup
        public List <Journal.Volume.NTFS_File> Update(Win32Api.USN_JOURNAL_DATA last)
        {
            var files   = new List <Journal.Volume.NTFS_File>();
            var changes = NTFS_Volume.NTFS_Functions.Get_Changes(_Root_Handle, last);

            foreach (var item in changes)
            {
                Journal.Volume.NTFS_File found = null;
                Lookup.TryGetValue(item.FileReferenceNumber, out found);
                if (found != null)
                {
                    Update((Journal.Volume.NTFS_File)found, item);
                }
            }
            return(files);
        }
コード例 #8
0
ファイル: NTFS_Volume.cs プロジェクト: 0-F/Backup
 public Win32Api.USN_JOURNAL_DATA Refresh()
 {
     var old = _Current_JournalState;
     _Current_JournalState = new Win32Api.USN_JOURNAL_DATA();
     NTFS_Volume.NTFS_Functions.QueryUsnJournal(_Root_Handle, ref _Current_JournalState);//need to query the jounral to get the first usn number
     return old;
 }