unit testFileNameUnit; interface uses XPTest, end_uses; procedure testCheckFileFolderPath; procedure testPathLevel; procedure testCutPathLevel; procedure testGetAbsolutePathFromRelativePath; procedure testGetRelativePathFromAbsolutePath; implementation uses FileNameUnit, uses_end; procedure testCheckFileFolderPath; begin Check(True, CheckPathFollowRule('c:\aaa\bbb.txt')); Check(True, CheckPathFollowRule('c:\')); Check(True, CheckPathFollowRule('c:')); Check(True, CheckPathFollowRule('\\EXELION')); Check(True, CheckPathFollowRule('\\B')); Check(True, CheckPathFollowRule('\\B\')); Check(True, CheckPathFollowRule('\\Exelion\TEMP')); Check(False, CheckPathFollowRule('\\')); Check(False, CheckPathFollowRule('c:\aaa\\bbb.txt')); Check(False, CheckPathFollowRule('\\Exelion\\TEMP')); Check(True, CheckPathFollowRule('.')); Check(True, CheckPathFollowRule('.\')); Check(False, CheckPathFollowRule('.\\')); Check(True, CheckPathFollowRule('..\')); Check(True, CheckPathFollowRule('..\')); Check(False, CheckPathFollowRule('...')); Check(False, CheckPathFollowRule('...\')); Check(False, CheckPathFollowRule('...\abc')); Check(False, CheckPathFollowRule('...\abc\def')); Check(False, CheckPathFollowRule('...\abc\def\')); Check(False, CheckPathFollowRule('C:\test\...')); Check(False, CheckPathFollowRule('C:\test\...\')); Check(False, CheckPathFollowRule('C:\test\...\abc')); Check(False, CheckPathFollowRule('C:\test\...\abc\def')); Check(False, CheckPathFollowRule('C:\test\...\abc\def\')); Check(False, CheckPathFollowRule('C:\test\...txt')); Check(False, CheckPathFollowRule('C:\test\...txt\')); Check(False, CheckPathFollowRule('C:\test\...txt\abc')); Check(False, CheckPathFollowRule('C:\test\...txt\abc\def')); Check(False, CheckPathFollowRule('C:\test\...txt\abc\def\')); Check(True, CheckPathFollowRule('A...')); Check(True, CheckPathFollowRule('A...\')); Check(True, CheckPathFollowRule('A...\abc')); Check(True, CheckPathFollowRule('A...\abc\def')); Check(True, CheckPathFollowRule('A...\abc\def\')); Check(True, CheckPathFollowRule('C:\test\A...')); Check(True, CheckPathFollowRule('C:\test\A...\')); Check(True, CheckPathFollowRule('C:\test\A...\abc')); Check(True, CheckPathFollowRule('C:\test\A...\abc\def')); Check(True, CheckPathFollowRule('C:\test\A...\abc\def\')); Check(False, CheckPathFollowRule('/')); Check(False, CheckPathFollowRule('a/')); Check(False, CheckPathFollowRule('/a')); Check(False, CheckPathFollowRule('ab/')); Check(False, CheckPathFollowRule('a/b')); Check(False, CheckPathFollowRule('/ab')); //{---------------------------------------- Check(False, CheckPathFollowRule('C:\Test\Test\Test\\')); //最後に\\がくるものはFalse Check(False, CheckPathFollowRule('\\')); Check(False, CheckPathFollowRule('\')); Check(False, CheckPathFollowRule('C:\Test\.\Test')); Check(False, CheckPathFollowRule('C:\Test\..\Test')); Check(True, CheckPathFollowRule('.\..\.\..\..\..\test')); Check(False, CheckPathFollowRule('.\..\.\..\a\..\..\test')); Check(False, CheckPathFollowRule('C:\..\Test')); Check(False, CheckPathFollowRule('-:\')); Check(False, CheckPathFollowRule('1:\')); Check(False, CheckPathFollowRule('_:\')); Check(True, CheckPathFollowRule('..\C:\Test\')); Check(True, CheckPathFollowRule('..\c:\Test\')); Check(False, CheckPathFollowRule('..\C:\Test\.')); Check(False, CheckPathFollowRule('..\C:\Test\.\')); Check(True, CheckPathFollowRule('..\C:\Test\a.\')); Check(False, CheckPathFollowRule('..\C:\Test\a.\\')); Check(False, CheckPathFollowRule('C:\Test\Test\:\')); Check(True, CheckPathFollowRule('C:\Test\Test\A\')); Check(False, CheckPathFollowRule('C:\Test\Test\A:\')); Check(True, CheckPathFollowRule('A:\Test\Test\A\')); Check(False, CheckPathFollowRule(':')); Check(False, CheckPathFollowRule(':\Test\')); Check(True, CheckPathFollowRule('p:\Test\')); Check(False, CheckPathFollowRule('p:\Test\\')); Check(False, CheckPathFollowRule('C:\Tst\Test\Test\...\')); Check(True, CheckPathFollowRule('C:\Tst\Test\Test\a...\')); Check(False, CheckPathFollowRule('C:\Tst\Test\Test\...txt\')); Check(False, CheckPathFollowRule('C:\Tst\Test\Test\.txt\')); Check(True, CheckPathFollowRule('C:\Tst\Test\Test\a..txt\')); Check(True, CheckPathFollowRule('C:\Tst\Test\Test\a...txt\')); Check(False, CheckPathFollowRule('.\..\.a\')); Check(False, CheckPathFollowRule('.\..\..a\')); Check(False, CheckPathFollowRule('.\..\..\.\...')); Check(False, CheckPathFollowRule('.\..\..\.\...\')); Check(False, CheckPathFollowRule('.\..\..\.\...\\')); Check(True, CheckPathFollowRule('.\..\..\.\')); Check(True, CheckPathFollowRule('.\..\..\.')); Check(True, CheckPathFollowRule('.\..\..\..\')); Check(True, CheckPathFollowRule('.\..\..\..')); Check(False, CheckPathFollowRule('.\..\..\...')); Check(True, CheckPathFollowRule('C:\Test\Test\A\')); Check(False, CheckPathFollowRule('C:\Test\/Test\A\')); Check(False, CheckPathFollowRule('C:\Test\Test/\A\')); Check(False, CheckPathFollowRule('C:\Test\Te/st/\A\')); Check(False, CheckPathFollowRule('C:\Test\Te')); Check(True, CheckPathFollowRule('A')); Check(True, CheckPathFollowRule('-')); Check(False, CheckPathFollowRule('"')); Check(True, CheckPathFollowRule('=')); end; procedure testPathLevel; begin Check(-1, PathLevel('abc')); Check(-1, PathLevel('123')); Check(-1, PathLevel('123:')); Check(-1, PathLevel('123:\')); Check(-1, PathLevel('\')); Check(-1, PathLevel('\\')); Check(-1, PathLevel('\:\')); Check(0, PathLevel('C:')); Check(0, PathLevel('C:\')); Check(0, PathLevel('D:')); Check(0, PathLevel('D:\')); Check(-1,PathLevel('AB:')); Check(-1,PathLevel('AB:\')); Check(1, PathLevel('C:\A')); Check(1, PathLevel('C:\Temp')); Check(1, PathLevel('C:\Temp\')); Check(2, PathLevel('C:\A\test.txt')); Check(2, PathLevel('C:\A\test')); Check(2, PathLevel('C:\A\test\')); Check(4, PathLevel('C:\Temp\TempA\TempB\aaa.txt')); Check(4, PathLevel('C:\Temp\TempA\TempB\aaa')); Check(4, PathLevel('C:\Temp\TempA\TempB\aaa\')); Check(-1, PathLevel('\test')); Check(-1, PathLevel('\t:')); Check(-1, PathLevel('\t:\')); Check(-1, PathLevel('\t\')); Check(0, PathLevel('\\test')); Check(0, PathLevel('\\test\')); Check(1, PathLevel('\\test\temp')); Check(1, PathLevel('\\test\temp\')); Check(2, PathLevel('\\test\temp\test.txt')); Check(4, PathLevel('\\A\Temp\TempA\TempB\aaa.txt')); Check(4, PathLevel('\\A\Temp\TempA\TempB\aaa')); Check(4, PathLevel('\\A\Temp\TempA\TempB\aaa\')); end; procedure testCutPathLevel; begin Check('C:\Temp\TempA\TempB\aaa.txt', CutPathLevel('C:\Temp\TempA\TempB\aaa.txt', 0)); Check('C:\Temp\TempA\TempB\', CutPathLevel('C:\Temp\TempA\TempB\aaa.txt', 1)); Check('C:\Temp\TempA\', CutPathLevel('C:\Temp\TempA\TempB\aaa.txt', 2)); Check('C:\', CutPathLevel('C:\Temp\TempA\TempB\aaa.txt', 4)); Check('', CutPathLevel('C:\Temp\TempA\TempB\aaa.txt', 5)); Check('', CutPathLevel('C:\Temp\TempA\TempB\aaa.txt', 6)); Check('', CutPathLevel('C:\Temp\TempA\TempB\aaa.txt', -1)); Check('C:\Temp\TempA\TempB\aaa', CutPathLevel('C:\Temp\TempA\TempB\aaa', 0)); Check('C:\Temp\TempA\TempB\aaa\', CutPathLevel('C:\Temp\TempA\TempB\aaa\', 0)); Check('C:\Temp\TempA\TempB\', CutPathLevel('C:\Temp\TempA\TempB\aaa', 1)); Check('C:\Temp\TempA\TempB\', CutPathLevel('C:\Temp\TempA\TempB\aaa\', 1)); Check('C:\Temp\TempA\', CutPathLevel('C:\Temp\TempA\TempB\aaa', 2)); Check('C:\Temp\TempA\', CutPathLevel('C:\Temp\TempA\TempB\aaa\', 2)); Check('C:\Temp\', CutPathLevel('C:\Temp\TempA\TempB\aaa', 3)); Check('C:\Temp\', CutPathLevel('C:\Temp\TempA\TempB\aaa\', 3)); Check('C:\', CutPathLevel('C:\Temp\TempA\TempB\aaa', 4)); Check('C:\', CutPathLevel('C:\Temp\TempA\TempB\aaa\', 4)); Check('', CutPathLevel('C:\Temp\TempA\TempB\aaa', 5)); Check('', CutPathLevel('C:\Temp\TempA\TempB\aaa\', 5)); Check('', CutPathLevel('C:\Temp\TempA\TempB\aaa', 6)); Check('', CutPathLevel('C:\Temp\TempA\TempB\aaa\', 6)); Check('', CutPathLevel('C:\Temp\TempA\TempB\aaa', -1)); Check('', CutPathLevel('C:\Temp\TempA\TempB\aaa\', -1)); Check('\\Test\Temp\TempA\TempB\aaa.txt', CutPathLevel('\\Test\Temp\TempA\TempB\aaa.txt', 0)); Check('\\Test\Temp\TempA\TempB\', CutPathLevel('\\Test\Temp\TempA\TempB\aaa.txt', 1)); Check('\\Test\Temp\TempA\', CutPathLevel('\\Test\Temp\TempA\TempB\aaa.txt', 2)); Check('\\Test\', CutPathLevel('\\Test\Temp\TempA\TempB\aaa.txt', 4)); Check('', CutPathLevel('\\Test\Temp\TempA\TempB\aaa.txt', 5)); Check('', CutPathLevel('\\Test\Temp\TempA\TempB\aaa.txt', 6)); Check('', CutPathLevel('\\Test\Temp\TempA\TempB\aaa.txt', -1)); Check('\\Test\Temp\TempA\TempB\aaa', CutPathLevel('\\Test\Temp\TempA\TempB\aaa', 0)); Check('\\Test\Temp\TempA\TempB\aaa\', CutPathLevel('\\Test\Temp\TempA\TempB\aaa\', 0)); Check('\\Test\Temp\TempA\TempB\', CutPathLevel('\\Test\Temp\TempA\TempB\aaa', 1)); Check('\\Test\Temp\TempA\TempB\', CutPathLevel('\\Test\Temp\TempA\TempB\aaa\', 1)); Check('\\Test\Temp\TempA\', CutPathLevel('\\Test\Temp\TempA\TempB\aaa', 2)); Check('\\Test\Temp\TempA\', CutPathLevel('\\Test\Temp\TempA\TempB\aaa\', 2)); Check('\\Test\Temp\', CutPathLevel('\\Test\Temp\TempA\TempB\aaa', 3)); Check('\\Test\Temp\', CutPathLevel('\\Test\Temp\TempA\TempB\aaa\', 3)); Check('\\Test\', CutPathLevel('\\Test\Temp\TempA\TempB\aaa', 4)); Check('\\Test\', CutPathLevel('\\Test\Temp\TempA\TempB\aaa\', 4)); Check('', CutPathLevel('\\Test\Temp\TempA\TempB\aaa', 5)); Check('', CutPathLevel('\\Test\Temp\TempA\TempB\aaa\', 5)); Check('', CutPathLevel('\\Test\Temp\TempA\TempB\aaa', 6)); Check('', CutPathLevel('\\Test\Temp\TempA\TempB\aaa\', 6)); Check('', CutPathLevel('\\Test\Temp\TempA\TempB\aaa', -1)); Check('', CutPathLevel('\\Test\Temp\TempA\TempB\aaa\', -1)); end; procedure testGetAbsolutePathFromRelativePath; begin {↓標準テスト} Check('C:\Test1\Test2\Test3\Test4\', GetAbsolutePathFromRelativePath('C:\Test1\Test2\Test3\Test4\Test5\', '..\')); {↓BasePathの\記号の影響なしテスト} Check('C:\Test1\Test2\Test3\Test4\', GetAbsolutePathFromRelativePath('C:\Test1\Test2\Test3\Test4\Test5', '..\')); {↓RelativePathの\記号の影響ありテスト} Check('C:\Test1\Test2\Test3\Test4', GetAbsolutePathFromRelativePath('C:\Test1\Test2\Test3\Test4\Test5\', '..')); {↓RelativePathの\記号の影響あり BasePathの\記号の影響なしテスト} Check('C:\Test1\Test2\Test3\Test4', GetAbsolutePathFromRelativePath('C:\Test1\Test2\Test3\Test4\Test5', '..')); {↓標準テスト} Check('C:\Test1\Test2\Test3\Test4\Test5\', GetAbsolutePathFromRelativePath('C:\Test1\Test2\Test3\Test4\Test5\', '.\')); {↓BasePathの\記号の影響なしテスト} Check('C:\Test1\Test2\Test3\Test4\Test5\', GetAbsolutePathFromRelativePath('C:\Test1\Test2\Test3\Test4\Test5', '.\')); {↓RelativePathの\記号の影響ありテスト} Check('C:\Test1\Test2\Test3\Test4\Test5', GetAbsolutePathFromRelativePath('C:\Test1\Test2\Test3\Test4\Test5\', '.')); {↓RelativePathの\記号の影響あり BasePathの\記号の影響なしテスト} Check('C:\Test1\Test2\Test3\Test4\Test5', GetAbsolutePathFromRelativePath('C:\Test1\Test2\Test3\Test4\Test5', '.')); {↓標準テスト} Check('C:\Test1\Test2\Test3\', GetAbsolutePathFromRelativePath('C:\Test1\Test2\Test3\Test4\Test5\', '..\..\')); {↓BasePathの\記号の影響なしテスト} Check('C:\Test1\Test2\Test3\', GetAbsolutePathFromRelativePath('C:\Test1\Test2\Test3\Test4\Test5', '..\..\')); {↓RelativePathの\記号の影響ありテスト} Check('C:\Test1\Test2\Test3', GetAbsolutePathFromRelativePath('C:\Test1\Test2\Test3\Test4\Test5\', '..\..')); {↓RelativePathの\記号の影響あり BasePathの\記号の影響なしテスト} Check('C:\Test1\Test2\Test3', GetAbsolutePathFromRelativePath('C:\Test1\Test2\Test3\Test4\Test5', '..\..')); {↓誤作動テスト} Check('', GetAbsolutePathFromRelativePath('C:\Test1\Test2\Test3\Test4\Test5', '...\')); Check('', GetAbsolutePathFromRelativePath('C:\Test1\Test2\Test3\Test4\Test5', '....\')); Check('', GetAbsolutePathFromRelativePath('C:\Test1\Test2\Test3\Test4\Test5', '..\...\')); Check('', GetAbsolutePathFromRelativePath('C:\Test1\Test2\Test3\Test4\Test5', '..\\')); {↓作動テスト} Check('C:\Test1\Test2\Test3\Test4\ABC', GetAbsolutePathFromRelativePath('C:\Test1\Test2\Test3\Test4\Test5\', '..\ABC')); Check('C:\Test1\Test2\Test3\ABC', GetAbsolutePathFromRelativePath('C:\Test1\Test2\Test3\Test4\Test5\', '..\..\ABC')); Check('C:\Test1\Test2\ABC', GetAbsolutePathFromRelativePath('C:\Test1\Test2\Test3\Test4\Test5\', '..\..\..\ABC')); Check('C:\Test1\ABC', GetAbsolutePathFromRelativePath('C:\Test1\Test2\Test3\Test4\Test5\', '..\..\..\..\ABC')); Check('C:\ABC', GetAbsolutePathFromRelativePath('C:\Test1\Test2\Test3\Test4\Test5\', '..\..\..\..\..\ABC')); {↓..\はC:\で収束されるテスト} Check('', GetAbsolutePathFromRelativePath('C:\Test1\Test2\Test3\Test4\Test5\', '..\..\..\..\..\..\ABC')); Check('D:', GetAbsolutePathFromRelativePath('C:\Test1\Test2\Test3\Test4\Test5\', '..\..\..\..\..\..\D:')); Check('D:\', GetAbsolutePathFromRelativePath('C:\Test1\Test2\Test3\Test4\Test5\', '..\..\..\..\..\..\D:\')); Check('', GetAbsolutePathFromRelativePath('C:\Test1\Test2\Test3\Test4\Test5\', '..\..\..\..\..\..\..\D:')); Check('', GetAbsolutePathFromRelativePath('C:\Test1\Test2\Test3\Test4\Test5\', '..\..\..\..\..\..\..\D:\')); {↓フォルダ名ファイル名連結テスト} Check('C:\Test1\ABC\test.txt', GetAbsolutePathFromRelativePath('C:\Test1\Test2\Test3\Test4\Test5\', '..\..\..\..\ABC\test.txt')); Check('C:\ABC\test.txt', GetAbsolutePathFromRelativePath('C:\Test1\Test2\Test3\Test4\Test5\', '..\..\..\..\..\ABC\test.txt')); {↓途中での.\の処理テスト} Check('C:\Test1\Test2\Test3\ABC', GetAbsolutePathFromRelativePath('C:\Test1\Test2\Test3\Test4\Test5\', '..\.\..\.\ABC')); Check('C:\Test1\Test2\Test3\Test4\Test5\ABC\test.txt', GetAbsolutePathFromRelativePath('C:\Test1\Test2\Test3\Test4\Test5\', '.\.\.\ABC\test.txt')); Check('', GetAbsolutePathFromRelativePath('C:\Test1\Test2\Test3\Test4\Test5\', '.\\.\ABC\test.txt')); Check('', GetAbsolutePathFromRelativePath('C:\Test1\Test2\Test3\Test4\Test5\', '\.\.\ABC\test.txt')); Check('C:\Test1\Test2\ABC\test.txt', GetAbsolutePathFromRelativePath('C:\Test1\Test2\Test3\Test4\Test5\', '.\.\..\..\..\.\ABC\test.txt')); Check('C:\Test1\Test2\ABC\test.txt', GetAbsolutePathFromRelativePath('C:\Test1\Test2\Test3\Test4\Test5', '.\.\..\..\..\.\ABC\test.txt')); Check('C:\Test1\Test2\ABC\D\E\F\test.txt', GetAbsolutePathFromRelativePath('C:\Test1\Test2\Test3\Test4\Test5\', '.\..\..\..\ABC\D\E\F\test.txt')); {↓省略テスト} {相対パスがそもそもファイルパスとして許容できないなら空文字を返す} Check('', GetAbsolutePathFromRelativePath('C:\Test1\Test2\Test3\Test4\Test5', '\')); Check('', GetAbsolutePathFromRelativePath('C:\Test1\Test2\Test3\Test4\Test5', '\..\')); Check('', GetAbsolutePathFromRelativePath('C:\Test1\Test2\Test3\Test4\Test5', '\..\test')); Check('', GetAbsolutePathFromRelativePath('C:\Test1\Test2\Test3\Test4\Test5', '')); Check('C:\Test1\Test2\Test3\Test4\Test5\ABC', GetAbsolutePathFromRelativePath('C:\Test1\Test2\Test3\Test4\Test5', 'ABC')); {↓くどいくらいにテスト} Check('C:\TEST1', GetAbsolutePathFromRelativePath('C:\TEST1\TEST2\', '..')); Check('C:\TEST1', GetAbsolutePathFromRelativePath('C:\TEST1\TEST2', '..')); Check('C:\TEST1\', GetAbsolutePathFromRelativePath('C:\TEST1\TEST2\', '..\')); Check('C:\TEST1\', GetAbsolutePathFromRelativePath('C:\TEST1\TEST2', '..\')); Check('C:', GetAbsolutePathFromRelativePath('C:\TEST1\TEST2\', '..\..')); Check('C:', GetAbsolutePathFromRelativePath('C:\TEST1\TEST2', '..\..')); Check('C:\', GetAbsolutePathFromRelativePath('C:\TEST1\TEST2\', '..\..\')); Check('C:\', GetAbsolutePathFromRelativePath('C:\TEST1\TEST2', '..\..\')); Check('C:\TEST1', GetAbsolutePathFromRelativePath('C:\TEST1\TEST2\', '..\.')); Check('C:\TEST1', GetAbsolutePathFromRelativePath('C:\TEST1\TEST2', '..\.')); Check('C:\TEST1\', GetAbsolutePathFromRelativePath('C:\TEST1\TEST2\', '..\.\')); Check('C:\TEST1\', GetAbsolutePathFromRelativePath('C:\TEST1\TEST2', '..\.\')); Check('C:\TEST1\TEST2', GetAbsolutePathFromRelativePath('C:\TEST1\TEST2\', '.')); Check('C:\TEST1\TEST2', GetAbsolutePathFromRelativePath('C:\TEST1\TEST2', '.')); Check('C:\TEST1\TEST2\', GetAbsolutePathFromRelativePath('C:\TEST1\TEST2\', '.\')); Check('C:\TEST1\TEST2\', GetAbsolutePathFromRelativePath('C:\TEST1\TEST2', '.\')); Check('C:\TEST1\TEST2', GetAbsolutePathFromRelativePath('C:\TEST1\TEST2\', '.\.')); Check('C:\TEST1\TEST2', GetAbsolutePathFromRelativePath('C:\TEST1\TEST2', '.\.')); Check('C:\TEST1\TEST2\', GetAbsolutePathFromRelativePath('C:\TEST1\TEST2\', '.\.\')); Check('C:\TEST1\TEST2\', GetAbsolutePathFromRelativePath('C:\TEST1\TEST2', '.\.\')); Check('', GetAbsolutePathFromRelativePath('C:\TEST1\TEST2', '')); Check('', GetAbsolutePathFromRelativePath('C:\TEST1\TEST2', '\')); Check('', GetAbsolutePathFromRelativePath('C:\TEST1\TEST2', '\\')); Check('', GetAbsolutePathFromRelativePath('C:\TEST1\TEST2', '\\\')); Check('', GetAbsolutePathFromRelativePath('C:\TEST1\TEST2', '\a\\')); {↓相対パス欄に絶対パス書いてもだめ} Check('', GetAbsolutePathFromRelativePath('C:\TEST1\TEST2', '\\a\')); Check('', GetAbsolutePathFromRelativePath('C:\TEST1\TEST2', '\\a')); Check('', GetAbsolutePathFromRelativePath('C:\TEST1\TEST2', '\\a\b\')); Check('', GetAbsolutePathFromRelativePath('C:\TEST1\TEST2', '\\a\b')); Check('', GetAbsolutePathFromRelativePath('C:\TEST1\TEST2', 'a:\')); Check('', GetAbsolutePathFromRelativePath('C:\TEST1\TEST2', 'a:')); Check('', GetAbsolutePathFromRelativePath('C:\TEST1\TEST2', 'a:\b\')); Check('', GetAbsolutePathFromRelativePath('C:\TEST1\TEST2', 'a:\b')); Check('', GetAbsolutePathFromRelativePath('C:\TEST1\TEST2', '.\\abc')); Check('C:\TEST1\TEST2\abc\', GetAbsolutePathFromRelativePath('C:\TEST1\TEST2', '.\abc\')); //OK Check('C:\TEST1\TEST2\abc', GetAbsolutePathFromRelativePath('C:\TEST1\TEST2', '.\abc')); //OK end; procedure testGetRelativePathFromAbsolutePath; begin {↓testGetAbsolutePathFromRelativePathの逆変換} Check('..\', GetRelativePathFromAbsolutePath('C:\Test1\Test2\Test3\Test4\Test5\', 'C:\Test1\Test2\Test3\Test4\')); // Check('..', // GetRelativePathFromAbsolutePath('C:\Test1\Test2\Test3\Test4\Test5', 'C:\Test1\Test2\Test3\Test4\')); // Check('..', // GetRelativePathFromAbsolutePath('C:\Test1\Test2\Test3\Test4\Test5\', 'C:\Test1\Test2\Test3\Test4')); // // Check('..', // GetRelativePathFromAbsolutePath('C:\Test1\Test2\Test3\Test4\Test5', 'C:\Test1\Test2\Test3\Test4')); // Check('.\', // GetRelativePathFromAbsolutePath('C:\Test1\Test2\Test3\Test4\Test5\', 'C:\Test1\Test2\Test3\Test4\Test5\')); // // Check('.\', // GetRelativePathFromAbsolutePath('C:\Test1\Test2\Test3\Test4\Test5', 'C:\Test1\Test2\Test3\Test4\Test5\')); // // Check('.', // GetRelativePathFromAbsolutePath('C:\Test1\Test2\Test3\Test4\Test5\', 'C:\Test1\Test2\Test3\Test4\Test5')); // // Check('.', // GetRelativePathFromAbsolutePath('C:\Test1\Test2\Test3\Test4\Test5', 'C:\Test1\Test2\Test3\Test4\Test5')); Check('..\..\', GetRelativePathFromAbsolutePath('C:\Test1\Test2\Test3\Test4\Test5\', 'C:\Test1\Test2\Test3\')); Check('..\..\', GetRelativePathFromAbsolutePath('C:\Test1\Test2\Test3\Test4\Test5', 'C:\Test1\Test2\Test3\')); Check('..\..', GetRelativePathFromAbsolutePath('C:\Test1\Test2\Test3\Test4\Test5\', 'C:\Test1\Test2\Test3')); Check('..\..', GetRelativePathFromAbsolutePath('C:\Test1\Test2\Test3\Test4\Test5', 'C:\Test1\Test2\Test3')); Check('', GetRelativePathFromAbsolutePath('C:\Test1\Test2\Test3\Test4\Test5', 'C:\Test1\Test2\Test3\Test4\\')); //「..\\」こんな値は返りません // Check("C:\Test1\Test2\Test3\Test4\ABC", // GetRelativePathFromAbsolutePath("C:\Test1\Test2\Test3\Test4\Test5\", "..\ABC")); // Check("C:\Test1\Test2\Test3\ABC", // GetRelativePathFromAbsolutePath("C:\Test1\Test2\Test3\Test4\Test5\", "..\..\ABC")); // Check("C:\Test1\Test2\ABC", // GetRelativePathFromAbsolutePath("C:\Test1\Test2\Test3\Test4\Test5\", "..\..\..\ABC")); // Check("C:\Test1\ABC", // GetRelativePathFromAbsolutePath("C:\Test1\Test2\Test3\Test4\Test5\", "..\..\..\..\ABC")); // // Check("C:\ABC", // GetRelativePathFromAbsolutePath("C:\Test1\Test2\Test3\Test4\Test5\", "..\..\..\..\..\ABC")); // // Check("C:\ABC", // end; end.