/// <summary> /// The main page loaded. /// </summary> /// <param name="sender"> /// The sender. /// </param> /// <param name="e"> /// The e. /// </param> public void MainPageLoaded(object sender, Windows.UI.Xaml.RoutedEventArgs e) { var queryOptions = new QueryOptions( CommonFileQuery.OrderByTitle, new List <string> { ".jpg", ".gif", ".tif", ".png" }) { FolderDepth = FolderDepth.Deep, IndexerOption = IndexerOption.UseIndexerWhenAvailable }; queryOptions.SetThumbnailPrefetch(ThumbnailMode.PicturesView, 150, ThumbnailOptions.ResizeThumbnail); var folder = KnownFolders.PicturesLibrary; if (!folder.AreQueryOptionsSupported(queryOptions) || !folder.IsCommonFileQuerySupported(CommonFileQuery.OrderByTitle)) { return; } var query = folder.CreateFileQueryWithOptions(queryOptions); var access = new FileInformationFactory(query, ThumbnailMode.PicturesView); var fileList = access.GetVirtualizedFilesVector(); MainList.ItemsSource = fileList; }
public MainPage() { this.InitializeComponent(); var queryOptions = new QueryOptions { FolderDepth = FolderDepth.Deep, IndexerOption = IndexerOption.UseIndexerWhenAvailable }; queryOptions.FileTypeFilter.Add(".jpg"); queryOptions.FileTypeFilter.Add(".png"); queryOptions.SortOrder.Clear(); var sortEntry = new SortEntry { PropertyName = "System.FileName", AscendingOrder = true }; queryOptions.SortOrder.Add(sortEntry); var fileQuery = KnownFolders.PicturesLibrary.CreateFileQueryWithOptions(queryOptions); const uint size = 190; var fileInformationFactory = new FileInformationFactory(fileQuery, ThumbnailMode.PicturesView, size, ThumbnailOptions.UseCurrentScale, true); photosViewSource.Source = fileInformationFactory.GetVirtualizedFilesVector(); }
private async Task ScanFiles() { var fileTypeFilter = new List <string> { ".mp3", ".flac" }; var queryOptions = new QueryOptions(CommonFileQuery.OrderByName, fileTypeFilter) { FolderDepth = FolderDepth.Deep, IndexerOption = IndexerOption.DoNotUseIndexer }; // Create query and retrieve files var query = KnownFolders.MusicLibrary.CreateFileQueryWithOptions(queryOptions); //IReadOnlyList<StorageFile> fileList = await query.GetFilesAsync(); var fif = new FileInformationFactory(query, Windows.Storage.FileProperties.ThumbnailMode.MusicView); fil = await fif.GetFilesAsync(); Debug.WriteLine("Count: " + fil.Count); foreach (var fi in fil) { Debug.WriteLine(fi.Path); } }
async Task ArchiveMetadatasAsync(FileInformationFactory fileInfoFactory) { var artistsCache = new Dictionary <string, DbArtist>(); var albumsCache = new Dictionary <string, DbAlbum>(); // Ensure ffmpeg is initialized. // TODO: Only initialize ffmpeg from background operation. @RsIncubator NativeMethods.InitializeFfmpeg(); // Index new files together. var metadataBag = new ConcurrentBag <MediaMetadata>(); var fileInfos = await fileInfoFactory.GetFilesAsync(); Messenger.Default.Send(new GenericMessage <string>(this, m_scannedCount.ToString()), "IndexItemAdded"); foreach (var f in fileInfos) { FillMetadataBagStub(f, metadataBag); m_scannedCount++; if (m_scannedCount % 30 == 0) { Messenger.Default.Send(new GenericMessage <string>(this, m_scannedCount.ToString()), "IndexItemAdded"); } } Messenger.Default.Send(new GenericMessage <string>(this, m_scannedCount.ToString()), "IndexItemAdded"); m_scannedCount = 0; await RecordMetadatasAsync(metadataBag.ToArray(), artistsCache, albumsCache); }
public async Task InitialScanAsync(FileInformationFactory fileInfoFactory) { await ArchiveMetadatasAsync(fileInfoFactory); // Save database await m_dbContext.SaveChangesAsync(); }
public void TestFieldQuotedCsv() { var file = Path.GetTempFileName().Replace(".tmp", ".csv"); File.WriteAllText(file, @"State,Population,Shape MI,""10,000,000"",Mitten CA,""20,000,000"",Sock, KS,""9,000,000"",Rectangle"); var request = new FileInspectionRequest(file); var actual = FileInformationFactory.Create(request, new TestLogger()); Assert.AreEqual(3, actual.Fields.Count); Assert.AreEqual("State", actual.Fields[0].Name); Assert.AreEqual("Population", actual.Fields[1].Name); Assert.AreEqual("Shape", actual.Fields[2].Name); Assert.AreEqual("string", actual.Fields[0].Type); Assert.AreEqual("string", actual.Fields[1].Type); Assert.AreEqual("string", actual.Fields[2].Type); Assert.IsTrue(actual.Fields[0].IsQuoted()); Assert.IsTrue(actual.Fields[1].IsQuoted()); Assert.AreEqual('\"', actual.Fields[1].QuotedWith); Assert.IsTrue(actual.Fields[2].IsQuoted()); Assert.AreEqual("1024", actual.Fields[0].Length); Assert.AreEqual("1024", actual.Fields[1].Length); Assert.AreEqual("1024", actual.Fields[2].Length); }
public void TestIssue001A() { var file = Path.GetTempFileName().Replace(".tmp", ".csv"); File.WriteAllText(file, @"t1,t2,t3,t4 Monday,10,1.1,1/1/2014 Tuesday,11,2.2,2/1/2014 Wednesday,12,3.3,3/1/2014 Thursday,13,4.4,4/1/2014 Friday,14,5.5,5/1/2014 Saturday,15,6.6,6/1/2014"); var request = new FileInspectionRequest(file) { DataTypes = new List <string> { "int32", "double", "datetime" } }; var information = FileInformationFactory.Create(request, new TestLogger()); var fields = new FieldInspector(new TestLogger()).Inspect(information, request).ToArray(); Assert.AreEqual("string", fields[0].Type); Assert.AreEqual("int32", fields[1].Type); Assert.AreEqual("double", fields[2].Type); Assert.AreEqual("datetime", fields[3].Type); //really do it //new FileImporter().Import(new FileInfo(file), request); }
public void TestFieldQuotedCsv2() { var file = Path.GetTempFileName().Replace(".tmp", ".csv"); File.WriteAllText(file, @"Field 1,Field 2,Field 3,Field 4,Field 5,Field 6 ""0007282100"",""O721"",20,""1111 COUNTY RD 1 SOUTH POINT OH 11111"",,""1"" ""0007382201"",""O722"",25,""2222 COUNTY RD 1 SOUTH POINT OH 22222"",,""1"" ""0007482302"",""O723"",30,""3333 COUNTY RD 1 SOUTH POINT OH 33333"",,""1"" "); var info = FileInformationFactory.Create(file, new TestLogger()); var actual = new FieldInspector(new TestLogger()).Inspect(info); Assert.AreEqual(6, actual.Count); Assert.AreEqual("Field 1", actual[0].Name); Assert.AreEqual("Field 2", actual[1].Name); Assert.AreEqual("Field 3", actual[2].Name); Assert.AreEqual("Field 4", actual[3].Name); Assert.AreEqual("Field 5", actual[4].Name); Assert.AreEqual("Field 6", actual[5].Name); Assert.AreEqual("int", actual[0].Type); Assert.AreEqual("string", actual[1].Type); Assert.AreEqual("int", actual[2].Type); Assert.AreEqual("string", actual[3].Type); Assert.AreEqual("string", actual[4].Type); Assert.AreEqual("int", actual[5].Type); }
public void TestCsvBlanks() { var file = Path.GetTempFileName().Replace(".tmp", ".csv"); File.WriteAllText(file, @"t1,t2,t3,t4,t5 ""Monday"",10,""1.1"",1/1/2014, ""Tuesday"",11,""2.2"",2/1/2014, ""Wednesday"",12,""3.3"",3/1/2014, ""Thursday"",13,""4.4"",4/1/2014, ""Friday"",14,,5/1/2014, ""Saturday"",15,,6/1/2014,"); var request = new FileInspectionRequest(file) { DataTypes = new List <string> { "int32", "double", "datetime" }, IgnoreEmpty = true }; var information = FileInformationFactory.Create(request, new TestLogger()); var fields = new FieldInspector(new TestLogger()).Inspect(information, request).ToArray(); Assert.AreEqual('"', fields[0].QuotedWith); Assert.AreEqual("string", fields[0].Type); Assert.AreEqual("int32", fields[1].Type); Assert.AreEqual('"', fields[2].QuotedWith); Assert.AreEqual("double", fields[2].Type); Assert.AreEqual("datetime", fields[3].Type); Assert.AreEqual("string", fields[4].Type); Assert.AreEqual("1", fields[4].Length); }
public void TestMultipleDelimiters() { var file = Path.GetTempFileName(); File.WriteAllText(file, @"f|1,f|2,f|3,f|4,f|5 v|1,v|;2,v|3,v|4,v|5 v|6,v|;7,v|8,v9,v|10, v|11,v|;12,v|13,v|14,v|15"); var request = new FileInspectionRequest(file); var actual = FileInformationFactory.Create(request, new TestLogger()); foreach ( var delimiter in request.Delimiters.Select(p => p.Value) .Where(d => d.AveragePerLine > 0) .OrderBy(d => d.CoefficientOfVariance())) { Console.WriteLine("Delimiter: `{0}` CoV: {1} Average: {2} StdDev: {3}", delimiter.Character, delimiter.CoefficientOfVariance(), delimiter.AveragePerLine, delimiter.StandardDeviation); } Assert.AreEqual(6, actual.Fields.Count); Assert.AreEqual('|', actual.Delimiter); Assert.AreEqual("A", actual.Fields[0].Name); Assert.AreEqual("B", actual.Fields[1].Name); Assert.AreEqual("C", actual.Fields[2].Name); Assert.AreEqual("D", actual.Fields[3].Name); Assert.AreEqual("E", actual.Fields[4].Name); Assert.AreEqual("F", actual.Fields[5].Name); }
public void TestCsvWithJustHeaders() { var file = Path.GetTempFileName().Replace(".tmp", ".csv"); File.WriteAllText(file, @"State,Population,Shape"); var request = new FileInspectionRequest(file); var actual = FileInformationFactory.Create(request, new TestLogger()); Assert.AreEqual(3, actual.Fields.Count); Assert.AreEqual("State", actual.Fields[0].Name); Assert.AreEqual("Population", actual.Fields[1].Name); Assert.AreEqual("Shape", actual.Fields[2].Name); Assert.AreEqual("string", actual.Fields[0].Type); Assert.AreEqual("string", actual.Fields[1].Type); Assert.AreEqual("string", actual.Fields[2].Type); Assert.IsTrue(actual.Fields[0].IsQuoted()); Assert.IsTrue(actual.Fields[1].IsQuoted()); Assert.IsTrue(actual.Fields[2].IsQuoted()); Assert.AreEqual("1024", actual.Fields[0].Length); Assert.AreEqual("1024", actual.Fields[1].Length); Assert.AreEqual("1024", actual.Fields[2].Length); }
public void TestExcel() { const string fileName = @"TestFiles\Headers\Headers.xlsx"; var request = new FileInspectionRequest(fileName); var actual = FileInformationFactory.Create(request, new TestLogger()); Assert.AreEqual(3, actual.ColumnCount()); Assert.AreEqual("Header 2", actual.Fields[1].Name); }
public void TestEmptyCsv() { var file = Path.GetTempFileName().Replace(".tmp", ".csv"); File.WriteAllText(file, string.Empty); var request = new FileInspectionRequest(file); var actual = FileInformationFactory.Create(request, new TestLogger()); Assert.AreEqual(0, actual.Fields.Count); }
public void TestSingleColumn() { const string fileName = @"TestFiles\Headers\Single.txt"; var request = new FileInspectionRequest(fileName); var actual = FileInformationFactory.Create(request, new TestLogger()); Assert.AreEqual(default(char), actual.Delimiter); Assert.AreEqual(1, actual.ColumnCount()); Assert.AreEqual("Header 1", actual.Fields[0].Name); Assert.AreEqual("1024", actual.Fields[0].Length); }
public void TestCommas() { const string fileName = @"TestFiles\Headers\Headers.csv"; var request = new FileInspectionRequest(fileName) { LineLimit = 3 }; var actual = FileInformationFactory.Create(request, new TestLogger()); Assert.AreEqual(',', actual.Delimiter); Assert.AreEqual(3, actual.ColumnCount()); Assert.AreEqual("Header 2", actual.Fields[1].Name); }
// Page Loaded private void Page_Loaded(object sender, RoutedEventArgs e) { // Define the query to iterate thriugh all the subfolders var pictureQueryOptions = new QueryOptions(); // Read only Picture Library folder pictureQueryOptions.FolderDepth = FolderDepth.Shallow; // Read through all the subfolders // pictureQueryOptions.FolderDepth = FolderDepth.Deep; // Apply the query on the PicturesLibrary var pictureQuery = KnownFolders.PicturesLibrary.CreateFileQueryWithOptions(pictureQueryOptions); var picturesInformation = new FileInformationFactory(pictureQuery, ThumbnailMode.PicturesView); picturesSource.Source = picturesInformation.GetVirtualizedFilesVector(); }
public void TestIssue002B() { const string file = @"TestFiles\Headers\Issue002.xlsx"; var request = new FileInspectionRequest(file) { DataTypes = new List <string> { "int32", "datetime" } }; var information = FileInformationFactory.Create(request, new TestLogger()); var fields = new FieldInspector(new TestLogger()).Inspect(information, request).ToArray(); Assert.AreEqual("string", fields[0].Type); Assert.AreEqual("int32", fields[1].Type); Assert.AreEqual("string", fields[2].Type); Assert.AreEqual("datetime", fields[3].Type); }
protected override void OnNavigatedTo(NavigationEventArgs e) { var queryOptions = new QueryOptions(); queryOptions.FolderDepth = FolderDepth.Deep; queryOptions.IndexerOption = IndexerOption.UseIndexerWhenAvailable; queryOptions.SortOrder.Clear(); var sortEntry = new SortEntry(); sortEntry.PropertyName = "System.FileName"; sortEntry.AscendingOrder = true; queryOptions.SortOrder.Add(sortEntry); var fileQuery = KnownFolders.PicturesLibrary.CreateFileQueryWithOptions(queryOptions); const uint size = 190; // default size for PicturesView mode var fileInformationFactory = new FileInformationFactory(fileQuery, ThumbnailMode.PicturesView, size, ThumbnailOptions.UseCurrentScale, true); itemsViewSource.Source = fileInformationFactory.GetVirtualizedFilesVector(); }
public void TestFieldQuotedCsv() { var file = Path.GetTempFileName().Replace(".tmp", ".csv"); File.WriteAllText(file, @"""State"",""Population"",""Shape"" MI,""10,000,000"",Mitten CA,""20,000,000"",Sock KS,""9,000,000"",Rectangle"); var request = new FileInspectionRequest(file) { DataTypes = new List <string> { "decimal" }, MinLength = 3 }; var fileInformation = FileInformationFactory.Create(request, new TestLogger()); var actual = new FieldInspector(new TestLogger()).Inspect(fileInformation, request); Assert.AreEqual(3, actual.Count); Assert.AreEqual("State", actual[0].Name); Assert.AreEqual("Population", actual[1].Name); Assert.AreEqual("Shape", actual[2].Name); Assert.AreEqual("string", actual[0].Type); Assert.AreEqual("decimal", actual[1].Type); Assert.AreEqual("string", actual[2].Type); Assert.AreEqual('\"', actual[0].QuotedWith); Assert.AreEqual('\"', actual[1].QuotedWith); Assert.AreEqual('\"', actual[2].QuotedWith); Assert.AreEqual("3", actual[0].Length); Assert.AreEqual("3", actual[1].Length); Assert.AreEqual("10", actual[2].Length); }