示例#1
0
        } // end Format

        /// <summary>
        /// Formats the Suffix based on the sequence provided.
        /// </summary>
        /// <param name="iSequence">Sequence used to replace the mask</param>
        /// <returns>Returns the formatted mask.</returns>
        public string Format(DateTimeExtended dtDateTime, int iSequence, string sTitle, string sFilename)
        {
            string sFormattedMask = "";

            for (int i = 0; i < _arrMask.GetLength(0); i++)
            {
                if (_arrMask[i, 1] != null && _arrMask[i, 1] == "*")
                {
                    if ((_arrMask[i, 0][0] == 'y') || (_arrMask[i, 0][0] == 'M') || (_arrMask[i, 0][0] == 'd') ||
                        (_arrMask[i, 0][0] == 'h') || (_arrMask[i, 0][0] == 'm') || (_arrMask[i, 0][0] == 's'))
                    {
                        sFormattedMask += dtDateTime.ToString(_arrMask[i, 0]);
                    }
                    else if (_arrMask[i, 0] == "title")
                    {
                        sFormattedMask += sTitle;
                    }
                    else if (_arrMask[i, 0] == "filename")
                    {
                        sFormattedMask += sFilename;
                    }
                    else
                    {
                        sFormattedMask += iSequence.ToString().PadLeft(_arrMask[i, 0].Length, '0');
                    }
                } // end if
                else
                {
                    sFormattedMask += _arrMask[i, 0];
                } // end else
            }     // end for

            return(sFormattedMask);
        } // end Format
示例#2
0
        }     // end Rename

        #endregion

        #region UpdateDateTaken

        public AttributeChangedEventArgs UpdateDateTaken(DateTimeExtended dtNewDateTaken, bool bTestRun)
        {
            try
            {
                if (bTestRun)
                {
                    _sNewFileName = _fileInfo.FullName;
                } // end if
                else
                {
                    DatePictureTaken = dtNewDateTaken;
                    _sNewFileName    = _fileInfo.FullName;
                } // end else

                return(new DateTakenChangedEventArgs(_fileInfo.FullName, dtNewDateTaken, true, String.Empty, false));
            } // end try
            catch (Exception ex)
            {
                // Saving the old file name as the new to retain the correct list of file names
                _sNewFileName = _fileInfo.FullName;

                return(new DateTakenChangedEventArgs(_fileInfo.FullName, dtNewDateTaken, false, ex.Message, false));
            } // end catch
        }     // end Rename
 public DateTimeExtended(DateTimeExtended other)
 {
     this.MyDateTime = other.MyDateTime;
     this.otherdata  = other.otherdata;
 }
示例#4
0
        } // end Rename

        public bool Rename(string sRenamingTemplate, RenamingTypes renamingType, double timeOffset, bool bTestRun)
        {
            Mask             mask            = new Mask(sRenamingTemplate);
            DateTimeExtended dtDateCreated   = null;
            string           sCurrentName    = String.Empty;
            string           sPreviousName   = String.Empty;
            bool             bGetDateCreated = mask.DateTimeExists || renamingType == RenamingTypes.DateTaken;
            int iCounter = 1;

            foreach (PowerFile powerFile in List)
            {
                if (bGetDateCreated)
                {
                    dtDateCreated = powerFile.DatePictureTaken?.AddHours(timeOffset);
                    if (dtDateCreated == null)
                    {
                        dtDateCreated = powerFile.DateModified?.AddHours(timeOffset);
                        if (dtDateCreated == null)
                        {
                            FileRenamed(this, new AttributeChangedEventArgs(powerFile.FullFileName, powerFile.FullFileName,
                                                                            false,
                                                                            "DatePictureTaken property not found.", false));
                        }
                        else
                        {
                            FileRenamed(this, new AttributeChangedEventArgs(powerFile.FullFileName, powerFile.FullFileName,
                                                                            true,
                                                                            "DatePictureTaken property not found DateModified property used.", true));
                        }
                    }
                } // end if

                if (dtDateCreated != null || !bGetDateCreated)
                {
                    var retries = 0;

                    while (retries < 3)
                    {
                        try
                        {
                            sCurrentName = mask.Format(dtDateCreated, iCounter, powerFile.Title, powerFile.FileName);
                            if (sCurrentName != sPreviousName)
                            {
                                iCounter = 0;
                            } // end if

                            sCurrentName = mask.Format(dtDateCreated, ++iCounter, powerFile.Title, powerFile.FileName);

                            sPreviousName = sCurrentName;

                            switch (renamingType)
                            {
                            case RenamingTypes.DateTaken:
                                FileRenamed(this, powerFile.UpdateDateTaken(dtDateCreated, bTestRun));
                                break;

                            case RenamingTypes.Filename:
                                FileRenamed(this, powerFile.Rename(sCurrentName, true, bTestRun));
                                break;

                            case RenamingTypes.Title:
                                FileRenamed(this, powerFile.UpdateTitle(sCurrentName, bTestRun));
                                break;
                            }

                            break;
                        }
                        catch (IOException ex)
                        {
                            retries++;

                            FileRenamed(this, new AttributeChangedEventArgs(powerFile.FullFileName, sCurrentName, false, ex.Message + " - trying again", true));
                        }
                    }
                } // end else
            }     // end foreach

            return(true);
        } // end Rename
示例#5
0
 /// <summary>
 /// Instantiates a FileRenamedEventArgs object and sets the OriginalFileName, NewFileName,
 /// Result, and Message.
 /// </summary>
 /// <param name="sFilename">Original File Name prior an attempt to rename</param>
 /// <param name="dtNewDateTaken">File Name to which the file will attempt to be changed</param>
 /// <param name="bResult">Result of the rename operation</param>
 /// <param name="sMessage">Any message associated with the rename operation</param>
 public DateTakenChangedEventArgs(string sFilename, DateTimeExtended dtNewDateTaken, bool bResult, string sMessage, bool logOnly) :
     base(sFilename, dtNewDateTaken.ToString(), bResult, sMessage, logOnly)
 {
 } // end FileRenamedEventArgs