public async Task <IEnumerable <TimeBlob> > ListTimeBlobsAsync(DateDirectory directory) { var blobs = await directory.Directory.ListBlobsSegmentedAsync(false, BlobListingDetails.None, null, null, null, null); var result = new List <TimeBlob>(); foreach (var blob in blobs.Results.OfType <CloudBlockBlob>()) { var timePart = blob.Name.Split('/').LastOrDefault()?.Split('-').FirstOrDefault(); if (TimeSpan.TryParseExact(timePart, TimeFormat, CultureInfo.InvariantCulture, TimeSpanStyles.None, out var time)) { result.Add(new TimeBlob(blob, new DateTimeOffset(directory.Date.Add(time), TimeSpan.Zero))); } } return(result); }
static void Main(string[] args) { string path; if (args.Length > 0) { path = args[0]; } else { path = Directory.GetCurrentDirectory(); } try { DateDirectory dir = new DateDirectory(path, "*.*"); Console.WriteLine("{0,-19}\t{1,-19}\t{2,-19}\t{3}", "Created", "Accessed", "Modified", "Filename" ); foreach (var f in dir.Files) { Console.WriteLine("{0,-15}\t{1,-15}\t{2,-15}\t{3}", f.DateCreated, f.DateAccessed, f.DateModified, f.Filename ); } } catch (System.IO.DirectoryNotFoundException) { Console.WriteLine(Messages.getText(Messages.ERR_FILE_NOT_FOUND, new object[] { path })); } // Console.WriteLine("Press key"); // Console.ReadLine(); }
static void setAttributes(ArgsData argd) { if (argd.ValueArgs.Count != 3) { msg(Messages.getText(Messages.ERR_ARG_WRONG_NUMBER, new object[] { "Use: <dirpath> <filemask> <datetime> -set=<attributes> Optional: -offset=<offset>" })); return; } string path = argd.ValueArgs[0].Value; string mask = argd.ValueArgs[1].Value; DateTime newDate; bool dateIsOk = DateTime.TryParse(argd.ValueArgs[2].Value, out newDate); if (dateIsOk) { try { DateDirectory dr = new DateDirectory(path, mask); dr.SetDate = newDate; #region set parameter if (argd.NamedArgs.ContainsKey("set")) { string atts = argd.NamedArgs["set"].Value; // only allowed characters if (atts.All(c => "acm".Contains(c))) { if (atts.Contains("a")) { dr.SetDateAccessed = true; } if (atts.Contains("c")) { dr.SetDateCreated = true; } if (atts.Contains("m")) { dr.SetDateModified = true; } } else { msg(Messages.getText(Messages.ERR_ARG_INVALID_VALUE, new object[] { "-set", "Allowed values: acm" })); return; } #endregion #region offset parameter if (argd.NamedArgs.ContainsKey("offset")) { try { dr.SetOffset = argd.NamedArgs["offset"].Value; } catch (ArgumentException exc) { msg(Messages.getText(Messages.ERR_ARG_INVALID_VALUE, new object[] { "-offset", "Examples: +5s -10h +3M -1Y" })); return; } } #endregion dr.WriteDateAttributes(true); } else { msg(Messages.getText(Messages.ERR_ARG_IS_MANDATORY, new object[] { "-set", "Allowed values: acm" })); } } catch (System.IO.FileNotFoundException exc) { msg(Messages.getText(Messages.ERR_FILE_NOT_FOUND, new object[] { path })); } } }