1*f6dc9357SAndroid Build Coastguard Worker // ExtractingFilePath.h 2*f6dc9357SAndroid Build Coastguard Worker 3*f6dc9357SAndroid Build Coastguard Worker #ifndef ZIP7_INC_EXTRACTING_FILE_PATH_H 4*f6dc9357SAndroid Build Coastguard Worker #define ZIP7_INC_EXTRACTING_FILE_PATH_H 5*f6dc9357SAndroid Build Coastguard Worker 6*f6dc9357SAndroid Build Coastguard Worker #include "../../../Common/MyString.h" 7*f6dc9357SAndroid Build Coastguard Worker 8*f6dc9357SAndroid Build Coastguard Worker // #ifdef _WIN32 9*f6dc9357SAndroid Build Coastguard Worker void Correct_AltStream_Name(UString &s); 10*f6dc9357SAndroid Build Coastguard Worker // #endif 11*f6dc9357SAndroid Build Coastguard Worker 12*f6dc9357SAndroid Build Coastguard Worker // replaces unsuported characters, and replaces "." , ".." and "" to "[]" 13*f6dc9357SAndroid Build Coastguard Worker UString Get_Correct_FsFile_Name(const UString &name); 14*f6dc9357SAndroid Build Coastguard Worker 15*f6dc9357SAndroid Build Coastguard Worker /* 16*f6dc9357SAndroid Build Coastguard Worker Correct_FsPath() corrects path parts to prepare it for File System operations. 17*f6dc9357SAndroid Build Coastguard Worker It also corrects empty path parts like "\\\\": 18*f6dc9357SAndroid Build Coastguard Worker - frontal empty path parts : it removes them or changes them to "_" 19*f6dc9357SAndroid Build Coastguard Worker - another empty path parts : it removes them 20*f6dc9357SAndroid Build Coastguard Worker if (absIsAllowed && path is absolute) : it removes empty path parts after start absolute path prefix marker 21*f6dc9357SAndroid Build Coastguard Worker else 22*f6dc9357SAndroid Build Coastguard Worker { 23*f6dc9357SAndroid Build Coastguard Worker if (!keepAndReplaceEmptyPrefixes) : it removes empty path parts 24*f6dc9357SAndroid Build Coastguard Worker if ( keepAndReplaceEmptyPrefixes) : it changes each empty frontal path part to "_" 25*f6dc9357SAndroid Build Coastguard Worker } 26*f6dc9357SAndroid Build Coastguard Worker */ 27*f6dc9357SAndroid Build Coastguard Worker void Correct_FsPath(bool absIsAllowed, bool keepAndReplaceEmptyPrefixes, UStringVector &parts, bool isDir); 28*f6dc9357SAndroid Build Coastguard Worker 29*f6dc9357SAndroid Build Coastguard Worker UString MakePathFromParts(const UStringVector &parts); 30*f6dc9357SAndroid Build Coastguard Worker 31*f6dc9357SAndroid Build Coastguard Worker #endif 32