From: <nor...@us...> - 2007-06-22 00:58:55
|
Revision: 593 http://mp-plugins.svn.sourceforge.net/mp-plugins/?rev=593&view=rev Author: northern_sky Date: 2007-06-21 17:58:50 -0700 (Thu, 21 Jun 2007) Log Message: ----------- update/import of directorys probaly didn't work for some time.fixed-still some stuff to do Modified Paths: -------------- trunk/plugins/myGUIProgramsAlt/GUIProgramsAlt/ApplicationItems/ApplicationItemDirectoryCache.cs Modified: trunk/plugins/myGUIProgramsAlt/GUIProgramsAlt/ApplicationItems/ApplicationItemDirectoryCache.cs =================================================================== --- trunk/plugins/myGUIProgramsAlt/GUIProgramsAlt/ApplicationItems/ApplicationItemDirectoryCache.cs 2007-06-22 00:57:15 UTC (rev 592) +++ trunk/plugins/myGUIProgramsAlt/GUIProgramsAlt/ApplicationItems/ApplicationItemDirectoryCache.cs 2007-06-22 00:58:50 UTC (rev 593) @@ -67,9 +67,10 @@ progressDialog.Close(); } - private string GetThumbsFile(GUIListItem guiFile, string fileTitle) + private string GetThumbsFile(FileInfo file, string fileTitle) { string thumbFolder = ""; + if (imageDirs.Length > 0) { string mainImgFolder = ""; @@ -85,7 +86,7 @@ if ("" != mainImgFolder) { string curDir = mainImgFolder + "\\"; - string filenameNoExtension = mainImgFolder + "\\" + guiFile.Label; + string filenameNoExtension = mainImgFolder + "\\" + file.Name; filenameNoExtension = Path.ChangeExtension(filenameNoExtension, null); filenameNoExtension = Path.GetFileNameWithoutExtension(filenameNoExtension); @@ -147,20 +148,22 @@ } - private void ImportFileItem(GUIListItem guiFile) + + private void ImportFileItem(FileInfo fileInfo) { FileItem curFile = new FileItem(sqlDB); curFile.FileID = -1; // to force an INSERT statement when writing the item curFile.AppID = this.AppID; - curFile.Title = guiFile.Label; + curFile.Title = fileInfo.Name; curFile.Title = curFile.TitleNormalized; - curFile.Filename = guiFile.Path; + curFile.Filename = fileInfo.FullName; if (this.UseQuotes) { curFile.Filename = "\"" + curFile.Filename + "\""; } - curFile.Filepath = Path.GetDirectoryName(guiFile.Path); - curFile.Imagefile = GetThumbsFile(guiFile, curFile.TitleNormalized); + curFile.Filepath = fileInfo.DirectoryName; + curFile.Imagefile = GetThumbsFile(fileInfo, curFile.TitleNormalized); + // not imported properties => set default values curFile.ManualFilename = ""; curFile.LastTimeLaunched = DateTime.MinValue; @@ -168,30 +171,14 @@ curFile.Write(); } - private void WriteFolderItem(string directoryPath) + private void UpdateProgressDialog(FileInfo fileInfo ,bool mpGuiMode) { - FileItem curFile = new FileItem(sqlDB); - curFile.FileID = -1; - curFile.AppID = this.AppID; - curFile.Filename = directoryPath; - curFile.Title = Path.GetFileNameWithoutExtension(directoryPath); - curFile.Filepath = Path.GetDirectoryName(directoryPath); - curFile.IsFolder = true; - curFile.ManualFilename = ""; - curFile.LastTimeLaunched = DateTime.MinValue; - curFile.LaunchCount = 0; - curFile.Write(); - } - - - private void UpdateProgressDialog(GUIListItem guiFile, bool mpGuiMode) - { if (mpGuiMode) { - progressDialog.SetLine(2, String.Format("{0} {1}", GUILocalizeStrings.Get(13005), guiFile.Label)); // "last imported file {0}" + progressDialog.SetLine(2, String.Format("{0} {1}", GUILocalizeStrings.Get(13005), fileInfo.Name)); // "last imported file {0}" progressDialog.Progress(); } - SendRefreshInfo(String.Format("{0} {1}", GUILocalizeStrings.Get(13005), guiFile.Label), 0); + SendRefreshInfo(String.Format("{0} {1}", GUILocalizeStrings.Get(13005), fileInfo.Name), 0); } private void DeleteOrphaned() @@ -221,70 +208,50 @@ } } - private void ImportDirectory(string curPath, bool mpGuiMode) + private void ImportFile(string dirPath,bool mpGuiMode) { - VirtualDirectory virtDir = new VirtualDirectory(); - ProgramUtils.SetFileExtensions(virtDir, ValidExtensions); - Boolean FileExists; - // read files - ArrayList arrFiles = virtDir.GetDirectory(curPath); - this.Files.Load(AppID, curPath); + FileInfo fileInDir = null; + DirectoryInfo directoryInfo = new DirectoryInfo(dirPath); + FileSystemInfo[] allUnderLyingFiles = directoryInfo.GetFileSystemInfos(); - foreach (GUIListItem file in arrFiles) + for (int i = 0; i < allUnderLyingFiles.Length; i++) { - FileExists = false; - if (!file.IsFolder) + if (allUnderLyingFiles[i] is FileInfo) { - foreach (FileItem DBfile in this.Files) - { - if ((((this.UseQuotes) && (DBfile.Filename == "\"" + file.Path + "\"")) - || ((!this.UseQuotes) && (DBfile.Filename == file.Path))) - && (!DBfile.IsFolder)) - { - FileExists = true; - break; - } - } - if (!FileExists) - { - ImportFileItem(file); - UpdateProgressDialog(file, mpGuiMode); - } - } - } + Boolean FileExists = false; + fileInDir = (FileInfo)allUnderLyingFiles[i]; - //read subdirectories - try - { - string[] directories = Directory.GetDirectories(curPath); - foreach (string directory in directories) - { - FileExists = false; foreach (FileItem DBfile in this.Files) { - if (DBfile.IsFolder && DBfile.Filename == directory) + if ((((this.UseQuotes) && (DBfile.Filename == "\"" + fileInDir.FullName + "\"")) + || ((!this.UseQuotes) && (DBfile.Filename == fileInDir.FullName)))) { FileExists = true; - break; + break;//ugly } } if (!FileExists) { - WriteFolderItem(directory); + ImportFileItem(fileInDir); + UpdateProgressDialog(fileInDir, mpGuiMode); } - // recursively call importer for every subdirectory - ImportDirectory(directory, mpGuiMode); + }//if dir found,, recurse + else if (allUnderLyingFiles[i] is DirectoryInfo) + { + DirectoryInfo directory = (DirectoryInfo)allUnderLyingFiles[i]; + ImportFile(directory.FullName, mpGuiMode); } - - } - catch + } + private void ImportDirectory(string[] fileDirPaths, bool mpGuiMode) + { + //get all maindirs + foreach (string dirPath in fileDirPaths) { - // Ignore + ImportFile(dirPath,mpGuiMode); } - } private void DoDirCacheImport(bool mpGuiMode) @@ -302,7 +269,10 @@ try { ValidExtensions = ValidExtensions.Replace(" ", ""); - ImportDirectory(this.FileDirectory, mpGuiMode); + this.Files.Load(AppID, ""); + + string[] fileDirPaths = this.FileDirectory.Split(';'); + ImportDirectory(fileDirPaths, mpGuiMode); } finally { This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |