'Copyright (C) 2004-2006 Autodesk, Inc. ' 'This library is free software; you can redistribute it and/or 'modify it under the terms of version 2.1 of the GNU Lesser 'General Public License as published by the Free Software Foundation. ' 'This library is distributed in the hope that it will be useful, 'but WITHOUT ANY WARRANTY; without even the implied warranty of 'MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 'Lesser General Public License for more details. ' 'You should have received a copy of the GNU Lesser General Public 'License along with this library; if not, write to the Free Software 'Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA Const VC_NET_PATH="C:\Program Files\Microsoft Visual Studio 8" Class FileSystemClass Private fs Private m_HaveError Private m_ErrorNumber Public Property Get HaveError HaveError = m_HaveError End Property Public Property Get ErrorNumber ErrorNumber = m_ErrorNumber End Property Private Sub Class_Initialize Set fs = WScript.CreateObject("Scripting.FileSystemObject") Call ClearErr() End Sub Private Sub Class_Terminate Set fs = Nothing End Sub Public Sub CopyFile(ByVal src, ByVal dest) Call fs.CopyFile(src, dest, True) CheckErr() End Sub Public Sub CreateFolder(ByVal fld) Call fs.CreateFolder(fld) CheckErr() End Sub Function FolderExist (ByVal folderFullPath) If (fs.FolderExists(folderFullPath)) Then FolderExist = True Else FolderExist = False End If End Function Public Sub DeleteFile(ByVal src) Call fs.DeleteFile(src, True) CheckErr() End Sub Public Sub DeleteFolder(ByVal fld) Call fs.DeleteFolder(fld, True) CheckErr() End Sub Public Sub WriteStringToFile(ByVal sFileName, ByVal sString) Dim oFile Set oFile = fs.CreateTextFile(sFileName, True) oFile.Write (sString) oFile.Close Set oFile = Nothing End Sub Public Function ReadStringFromFile(ByVal sFileName) On Error Resume Next Dim oFile Dim sStr Set oFile = fs.OpenTextFile(sFileName) sStr = oFile.ReadAll() If Err.Number = 62 Then sStr = "" Err.Clear Else Err.Raise Err.Number End If oFile.Close ReadStringFromFile = sStr Set oFile = Nothing End Function Function FileExist (ByVal fileFullPath) If (fs.FileExists(fileFullPath)) Then FileExist = True Else FileExist = False End If End Function Function RemoveSeparator (ByVal strPath) Select Case right(strPath, 1) Case "\", "/" strPath = Left(strPath, Len(strPath) - 1) End Select RemoveSeparator = strPath End Function Function RemoveReadOnly (ByVal fileFullPath) Set objFile = fs.GetFile(fileFullPath) If objFile.Attributes AND 1 Then objFile.Attributes = objFile.Attributes XOR 1 End If Set objFile = Nothing End Function Private Sub CheckErr() If Err.number <> 0 Then m_ErrorNumber = Err.number m_HaveError = True Err.Clear End If End Sub Public Sub ClearErr() m_ErrorNumber = Err.number m_HaveError = False Err.Clear End Sub Public Function ReplaceStringInFile(ByVal fileName, ByVal varName, ByVal varValue) Dim pos Dim posEnd Dim fileCnt Dim fsc Dim newFileCnt Set fsc = New FileSystemClass ReplaceStringInFile = False If fsc.FileExist(fileName) Then fileCnt = fsc.ReadStringFromFile(fileName) pos = InStr(1, fileCnt, varName) If pos <> 0 Then posEnd = pos + Len(varName) newFileCnt = Mid(fileCnt, 1, pos-1) newFileCnt = newFileCnt & varValue newFileCnt = newFileCnt & Mid(fileCnt, posEnd) ReplaceStringInFile = True Call fsc.WriteStringToFile (fileName, newFileCnt) End If End If Set fsc = Nothing End Function Function BasePath(ByVal sPathAndFile) Dim sPath Dim nSepPos Dim nSepPos2 Dim fUsingDriveSep nSepPos = InStrRev(sPathAndFile, "\") nSepPos2 = InStrRev(sPathAndFile, "/") If nSepPos2 > nSepPos Then nSepPos = nSepPos2 End If nSepPos2 = InStrRev(sPathAndFile, ":") If nSepPos2 > nSepPos Then nSepPos = nSepPos2 fUsingDriveSep = True End If If nSepPos = 0 Then Call Err.Raise (5000, "BasePath", "Invalide path format") sPath = "" Else If fUsingDriveSep Then sPath = Left(sPathAndFile, nSepPos) Else sPath = Left(sPathAndFile, nSepPos - 1) End If End If BasePath = sPath End Function End Class