示例#1
0
        public void EnumerateEntries_ShouldNotBeEmpty()
        {
            var file  = Path.GetTempFileName();
            var drive = Path.GetPathRoot(file);

            using var changeJournal = ChangeJournal.Open(new DriveInfo(drive));
            var entries = changeJournal.Entries.ToList();

            Assert.True(entries.Count > 0);
        }
示例#2
0
        public void GetEntries_ShouldFilterEntries()
        {
            var file     = Path.Combine(Path.GetTempPath(), Guid.NewGuid().ToString() + ".tmp");
            var fileName = Path.GetFileName(file);
            var drive    = Path.GetPathRoot(file);

            using var changeJournal = ChangeJournal.Open(new DriveInfo(drive));
            var item = changeJournal.Entries.FirstOrDefault(entry => string.Equals(entry.Name, fileName, StringComparison.Ordinal));

            Assert.Null(item);

            File.WriteAllText(file, "test");
            Assert.Null(changeJournal.GetEntries(ChangeReason.Close, returnOnlyOnClose: false, TimeSpan.Zero).FirstOrDefault(entry => string.Equals(entry.Name, fileName, StringComparison.Ordinal) && !entry.Reason.HasFlag(ChangeReason.Close)));
            Assert.NotNull(changeJournal.GetEntries(ChangeReason.Close, returnOnlyOnClose: false, TimeSpan.Zero).FirstOrDefault(entry => string.Equals(entry.Name, fileName, StringComparison.Ordinal) && entry.Reason.HasFlag(ChangeReason.Close)));

            File.Delete(file);
        }
示例#3
0
        public void GetEntries_ShouldFilterEntries()
        {
            var file     = Path.Combine(Path.GetTempPath(), Guid.NewGuid().ToString() + ".tmp");
            var fileName = Path.GetFileName(file);
            var drive    = Path.GetPathRoot(file);

            using (var changeJournal = ChangeJournal.Open(new DriveInfo(drive)))
            {
                var item = changeJournal.Entries.FirstOrDefault(entry => entry.Name == fileName);
                Assert.AreEqual(null, item);

                File.WriteAllText(file, "test");
                Assert.AreEqual(null, changeJournal.GetEntries(ChangeReason.Close, false, TimeSpan.Zero).FirstOrDefault(entry => entry.Name == fileName && !entry.Reason.HasFlag(ChangeReason.Close)));
                Assert.AreNotEqual(null, changeJournal.GetEntries(ChangeReason.Close, false, TimeSpan.Zero).FirstOrDefault(entry => entry.Name == fileName && entry.Reason.HasFlag(ChangeReason.Close)));

                File.Delete(file);
            }
        }
示例#4
0
        public void EnumerateEntries_ShouldFindNewFile()
        {
            var file     = Path.Combine(Path.GetTempPath(), Guid.NewGuid().ToString() + ".tmp");
            var fileName = Path.GetFileName(file);
            var drive    = Path.GetPathRoot(file);

            using var changeJournal = ChangeJournal.Open(new DriveInfo(drive));
            var item = changeJournal.Entries.FirstOrDefault(entry => string.Equals(entry.Name, fileName, StringComparison.Ordinal));

            Assert.Null(item);

            File.WriteAllText(file, "test");
            Assert.NotNull(changeJournal.Entries.FirstOrDefault(entry => string.Equals(entry.Name, fileName, StringComparison.Ordinal) && entry.Reason.HasFlag(ChangeReason.FileCreate)));
            Assert.NotNull(changeJournal.Entries.FirstOrDefault(entry => string.Equals(entry.Name, fileName, StringComparison.Ordinal) && entry.Reason.HasFlag(ChangeReason.DataExtend)));
            Assert.NotNull(changeJournal.Entries.FirstOrDefault(entry => string.Equals(entry.Name, fileName, StringComparison.Ordinal) && entry.Reason.HasFlag(ChangeReason.Close)));

            File.Delete(file);
            Assert.NotNull(changeJournal.Entries.FirstOrDefault(entry => string.Equals(entry.Name, fileName, StringComparison.Ordinal) && entry.Reason.HasFlag(ChangeReason.FileDelete)));
        }
示例#5
0
    public static void Main()
    {
        // Video Brightness Sample
          LCDBrightnessForMsdnMagazine();

          // Opportunistic Lock Sample
          OpLockDemo.Demo();

        #if false
          // Change Journal Sample
          String s = ChangeJournal.GetVolumeNameForVolumeMountPoint(@"C:\");
          using (ChangeJournal cj = new ChangeJournal('C', true)) {
            foreach (UsnRecord r in cj)
            Console.WriteLine(r);

         foreach (UsnRecord r in cj.GetFilteredRecords(0, ChangeReason.All, true, 1024)) {
            String s2 = Path.GetExtension(r.Name);
            if (String.Equals(Path.GetExtension(r.Name), ".txt", StringComparison.OrdinalIgnoreCase))
               Console.WriteLine("{0} {1} {2}", r.Name, r.TimestampUtc, r.Reason);
         }
          }
        #endif
    }