示例#1
0
        /**
         * Rename file if exists appending current timestamp
         *
         * @return True if rename successful. False otherwise
         */
        public NameSorterDefs.FileRenameStatus renameFile(string fileName, string newFileName)
        {
            if (isFileExists(fileName))
            {
                NameSorterDefs.FileRenameStatus status = NameSorterDefs.FileRenameStatus.Success;

                try
                {
                    File.Move(fileName, newFileName);
                    Console.WriteLine(NameSorterLogs.INF_FILE_RENAME, fileName, newFileName);
                }
                catch (ArgumentException e)
                {
                    Console.WriteLine(NameSorterLogs.ERR_ARGUMENT_EXCEPTION, fileName);
                    Console.WriteLine(e);
                    status = NameSorterDefs.FileRenameStatus.Failed;
                }
                catch (PathTooLongException e)
                {
                    Console.WriteLine(e);
                    Console.WriteLine(NameSorterLogs.ERR_PATH_TOO_LONG_EXCEPTION, fileName);
                    status = NameSorterDefs.FileRenameStatus.Failed;
                }
                catch (IOException e)
                {
                    Console.WriteLine(e);
                    Console.WriteLine(NameSorterLogs.ERR_IO_EXCEPTION, fileName);
                    status = NameSorterDefs.FileRenameStatus.Failed;
                }
                catch (UnauthorizedAccessException e)
                {
                    Console.WriteLine(e);
                    Console.WriteLine(NameSorterLogs.ERR_UNAUTHORIZED_ACCESS_EXCEPTION, fileName);
                    status = NameSorterDefs.FileRenameStatus.Failed;
                }
                catch (NotSupportedException e)
                {
                    Console.WriteLine(e);
                    Console.WriteLine(NameSorterLogs.ERR_NOT_SUPPORTED_EXCEPTION, fileName);
                    status = NameSorterDefs.FileRenameStatus.Failed;
                }

                return(status);
            }
            else
            {
                return(NameSorterDefs.FileRenameStatus.Skipped);
            }
        }
示例#2
0
        public void TestFileHandler_renameFile_Invalid_Output_File()
        {
            string fileName    = "TestFile.txt";
            string content     = "This is a test";
            string newFileName = "Test///@#/$/,/./<>)(*&^%$#@!~!@%File.txt";

            File.WriteAllText(fileName, content);

            FileHandler fileHandler = new FileHandler();

            NameSorterDefs.FileRenameStatus status = fileHandler.renameFile(fileName, newFileName);
            File.Delete(fileName);

            Assert.AreEqual(NameSorterDefs.FileRenameStatus.Failed, status);
        }
示例#3
0
        public void TestFileHandler_renameFile_Existing_File()
        {
            string fileName    = "TestFile.txt";
            string content     = "This is a test";
            string newFileName = "TestFile2.txt";

            File.WriteAllText(fileName, content);

            FileHandler fileHandler = new FileHandler();

            NameSorterDefs.FileRenameStatus status = fileHandler.renameFile(fileName, newFileName);
            File.Delete(newFileName);

            Assert.AreEqual(NameSorterDefs.FileRenameStatus.Success, status);
        }