本文整理汇总了Python中FileUtils.removeFileOrDir方法的典型用法代码示例。如果您正苦于以下问题:Python FileUtils.removeFileOrDir方法的具体用法?Python FileUtils.removeFileOrDir怎么用?Python FileUtils.removeFileOrDir使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类FileUtils
的用法示例。
在下文中一共展示了FileUtils.removeFileOrDir方法的14个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。
示例1: uninstallPlugin
# 需要导入模块: import FileUtils [as 别名]
# 或者: from FileUtils import removeFileOrDir [as 别名]
def uninstallPlugin(self, _pluginName, _isQuiet=False):
isUninstalled = False
pluginModule = __import__("MyPlugins." + _pluginName, globals(), locals(),
["pluginName", "pluginFiles", "pluginDirectory", "uninstallThisPlugin",
"setupDirectory", "pluginVersion"], 0)
if pluginModule.uninstallThisPlugin is None:
if pluginModule.pluginDirectory == "":
for pluginFile in pluginModule.pluginFiles:
if fu.isFile(fu.joinPath(pluginModule.setupDirectory, pluginFile)):
fu.removeFileOrDir(fu.joinPath(pluginModule.setupDirectory, pluginFile))
isUninstalled = True
else:
if fu.isDir(fu.joinPath(pluginModule.setupDirectory, pluginModule.pluginDirectory)):
fu.removeFileOrDir(fu.joinPath(pluginModule.setupDirectory, pluginModule.pluginDirectory))
isUninstalled = True
else:
isUninstalled = pluginModule.uninstallThisPlugin()
if isUninstalled:
Settings.setUniversalSetting(str(pluginModule.pluginName), str(""))
if _isQuiet is False:
Dialogs.show(translate("MyPlugins", "Plug-in Uninstallation Is Complete"),
str(translate("MyPlugins", "\"%s\" is uninstalled on your system.")) % (
pluginModule.pluginName))
elif isUninstalled == "AlreadyUninstalled":
if _isQuiet is False:
Dialogs.show(translate("MyPlugins", "Plug-in Already Uninstalled"),
str(translate("MyPlugins", "\"%s\" already uninstalled on your system.")) % (
pluginModule.pluginName))
else:
if _isQuiet is False:
Dialogs.showError(translate("MyPlugins", "Plug-in Uninstallation Failed"),
str(translate("MyPlugins", "\"%s\" failed to uninstall on your system.")) % (
pluginModule.pluginName))
示例2: uninstall
# 需要导入模块: import FileUtils [as 别名]
# 或者: from FileUtils import removeFileOrDir [as 别名]
def uninstall(self):
try:
MApplication.processEvents()
self.UninstallationDirectory = str(self.leUninstallationDirectory.text())
if len(self.UninstallationDirectory) > 0:
if self.UninstallationDirectory[-1] == fu.sep:
self.UninstallationDirectory = self.UninstallationDirectory[:-1]
if self.UninstallationDirectory == fu.HamsiManagerDirectory:
self.pageNo -= 1
Dialogs.showError(translate("Uninstall", "The path you selected is not valid."),
translate("Uninstall",
"The selected path is Hamsi Manager source directory.<br>Please choose a valid uninstallation path."))
elif fu.isDir(self.UninstallationDirectory):
fu.removeFileOrDir(self.UninstallationDirectory)
else:
self.pageNo -= 1
Dialogs.showError(translate("Uninstall", "The path you selected is not valid."),
translate("Uninstall",
"The selected path points to a file not a folder.<br>Please choose a valid Uninstallation path."))
else:
self.pageNo -= 1
Dialogs.showError(translate("Uninstall", "The path you selected is not valid."),
translate("Uninstall",
"The selected path points to a file not a folder.<br>Please choose a valid Uninstallation path."))
self.pageChanged(True)
except:
from Core import ReportBug
ReportBug.ReportBug()
示例3: generateReadOnlyEmbeddedD
# 需要导入模块: import FileUtils [as 别名]
# 或者: from FileUtils import removeFileOrDir [as 别名]
def generateReadOnlyEmbeddedD(_isNoAlertIfSuccessfully=True):
stopReadOnlyEmbeddedDB()
if fu.isExist(fu.pathOfSettingsDirectory + "/Amarok/mysqle/amarok"):
fu.removeFileOrDir(fu.pathOfSettingsDirectory + "/Amarok/mysqle/amarok")
fu.copyFileOrDir(uni.getKDE4HomePath() + "/share/apps/amarok/mysqle/amarok",
fu.pathOfSettingsDirectory + "/Amarok/mysqle/amarok")
if _isNoAlertIfSuccessfully is False:
Dialogs.show(translate("EmbeddedDBCore", "Generated Embedded Server"),
translate("EmbeddedDBCore", "Embedded Amarok database server generated."))
return True
示例4: reConfigure
# 需要导入模块: import FileUtils [as 别名]
# 或者: from FileUtils import removeFileOrDir [as 别名]
def reConfigure(self):
try:
oldPathOfExecutableHamsi = Settings.getUniversalSetting("HamsiManagerExecutableLinkPath", "/usr/bin/hamsi")
if fu.isFile(fu.joinPath(fu.HamsiManagerDirectory, "HamsiManager.desktop")):
if fu.isWritableFileOrDir(fu.joinPath(fu.HamsiManagerDirectory, "HamsiManager.desktop")):
MyConfigure.reConfigureFile(fu.joinPath(fu.HamsiManagerDirectory, "HamsiManager.desktop"))
if self.isCreateDesktopShortcut is not None:
if self.isCreateDesktopShortcut.checkState() == Mt.Checked:
desktopPath = uni.getUserDesktopPath()
if uni.isWindows:
MyConfigure.createShortCutFile(fu.joinPath(desktopPath, "Hamsi Manager.lnk"))
else:
fileContent = MyConfigure.getConfiguredDesktopFileContent()
fu.writeToFile(fu.joinPath(desktopPath, "HamsiManager.desktop"), fileContent)
if uni.isRunningAsRoot():
executableLink = str(self.leExecutableLink.text())
if self.isCreateExecutableLink is not None:
if self.isCreateExecutableLink.checkState() == Mt.Checked:
if executableLink.strip() != "":
HamsiManagerFileName = Execute.findExecutableBaseName("HamsiManager")
if fu.isFile(executableLink):
fu.removeFileOrDir(executableLink)
fu.createSymLink(fu.joinPath(fu.HamsiManagerDirectory, HamsiManagerFileName),
executableLink)
Settings.setUniversalSetting("HamsiManagerExecutableLinkPath", executableLink)
if oldPathOfExecutableHamsi != executableLink:
if fu.isFile(oldPathOfExecutableHamsi):
answer = Dialogs.ask(translate("Reconfigure", "Other Hamsi Manager Was Detected"),
str(translate("Reconfigure",
"Other Hamsi Manager executable file was detected. Are you want to delete old executable file? You can delete this old executable file : \"%s\"")) % (
oldPathOfExecutableHamsi))
if answer != Dialogs.Yes:
fu.removeFile(oldPathOfExecutableHamsi)
if fu.isDir("/usr/share/applications/"):
fileContent = MyConfigure.getConfiguredDesktopFileContent()
fu.writeToFile("/usr/share/applications/HamsiManager.desktop", fileContent)
if uni.isRunningAsRoot() is False:
if fu.isDir(fu.joinPath(fu.userDirectoryPath, ".local", "applications")) is False:
fu.makeDirs(fu.joinPath(fu.userDirectoryPath, ".local", "applications"))
fileContent = MyConfigure.getConfiguredDesktopFileContent()
fu.writeToFile(fu.joinPath(fu.userDirectoryPath, ".local", "applications", "HamsiManager.desktop"),
fileContent)
MyConfigure.installKDE4Languages()
self.isInstallFinished = True
except:
ReportBug.ReportBug()
示例5: createShortCutFile
# 需要导入模块: import FileUtils [as 别名]
# 或者: from FileUtils import removeFileOrDir [as 别名]
def createShortCutFile(_destinationPath, _installationDirectory=fu.HamsiManagerDirectory):
if fu.isFile(_destinationPath):
fu.removeFileOrDir(_destinationPath)
from Core import Execute
from win32com.client import Dispatch
shell = Dispatch('WScript.Shell')
shortcut = shell.CreateShortCut(_destinationPath)
targetPath = Execute.getExecuteCommandOfHamsiManagerAsList()
if len(targetPath) > 1:
shortcut.Targetpath = targetPath[0].replace(fu.HamsiManagerDirectory, _installationDirectory)
shortcut.Arguments = targetPath[1].replace(fu.HamsiManagerDirectory, _installationDirectory)
else:
shortcut.Targetpath = targetPath[0].replace(fu.HamsiManagerDirectory, _installationDirectory)
shortcut.WorkingDirectory = _installationDirectory
shortcut.IconLocation = fu.joinPath(fu.themePath.replace(fu.HamsiManagerDirectory, _installationDirectory),
"Images", "hamsi.ico")
shortcut.save()
示例6: createReadOnlyEmbeddedDB
# 需要导入模块: import FileUtils [as 别名]
# 或者: from FileUtils import removeFileOrDir [as 别名]
def createReadOnlyEmbeddedDB(_isNoAlertIfSuccessfully=True):
stopReadOnlyEmbeddedDB()
if fu.isDir(fu.pathOfSettingsDirectory + "/Amarok"):
fu.removeFileOrDir(fu.pathOfSettingsDirectory + "/Amarok")
fu.makeDirs(fu.pathOfSettingsDirectory + "/Amarok/mysqle")
fu.copyFileOrDir(fu.HamsiManagerDirectory + "/Amarok/EmbeddedDBFiles/mysql",
fu.pathOfSettingsDirectory + "/Amarok/mysqle/mysql", )
fu.copyFileOrDir(fu.HamsiManagerDirectory + "/Amarok/EmbeddedDBFiles/my-readOnly.cnf",
fu.pathOfSettingsDirectory + "/Amarok/my.cnf")
MyConfigure.reConfigureFile(fu.pathOfSettingsDirectory + "/Amarok/my.cnf")
fu.makeDirs(fu.pathOfSettingsDirectory + "/Amarok/mysqle/amarok")
fu.copyFileOrDir(uni.getKDE4HomePath() + "/share/apps/amarok/mysqle/ib_logfile0",
fu.pathOfSettingsDirectory + "/Amarok/mysqle/ib_logfile0")
fu.copyFileOrDir(uni.getKDE4HomePath() + "/share/apps/amarok/mysqle/ib_logfile1",
fu.pathOfSettingsDirectory + "/Amarok/mysqle/ib_logfile1")
fu.copyFileOrDir(uni.getKDE4HomePath() + "/share/apps/amarok/mysqle/ibdata1",
fu.pathOfSettingsDirectory + "/Amarok/mysqle/ibdata1")
generateReadOnlyEmbeddedD()
if _isNoAlertIfSuccessfully is False:
Dialogs.show(translate("EmbeddedDBCore", "Created Embedded Server"),
translate("EmbeddedDBCore", "Embedded Amarok database server created and generated."))
return True
示例7: finish
# 需要导入模块: import FileUtils [as 别名]
# 或者: from FileUtils import removeFileOrDir [as 别名]
def finish(self):
try:
if uni.isRunningAsRoot():
executableLink = Settings.getUniversalSetting("HamsiManagerExecutableLinkPath",
str("/usr/bin/hamsi"))
if fu.isFile(executableLink) or fu.isLink(executableLink):
fu.removeFileOrDir(executableLink)
else:
desktopPath = uni.getUserDesktopPath()
if uni.isWindows:
if fu.isFile(fu.joinPath(desktopPath, "Hamsi Manager.lnk")):
fu.removeFileOrDir(fu.joinPath(desktopPath, "Hamsi Manager.lnk"))
else:
if fu.isFile(fu.joinPath(desktopPath, "HamsiManager.desktop")):
fu.removeFileOrDir(fu.joinPath(desktopPath, "HamsiManager.desktop"))
if fu.isFile(fu.joinPath(fu.userDirectoryPath, ".local", "applications", "HamsiManager.desktop")):
fu.removeFileOrDir(
fu.joinPath(fu.userDirectoryPath, ".local", "applications", "HamsiManager.desktop"))
self.isUninstallFinished = True
self.close()
except:
from Core import ReportBug
ReportBug.ReportBug()
示例8: writeContents
# 需要导入模块: import FileUtils [as 别名]
# 或者: from FileUtils import removeFileOrDir [as 别名]
def writeContents(self):
self.changedValueNumber = 0
oldAndNewPathValues = []
if uni.isActiveAmarok and uni.getBoolValue("isSubFolderTableValuesChangeInAmarokDB"):
import Amarok
if Amarok.checkAmarok(True, False) is False:
return False
uni.startThreadAction()
allItemNumber = len(self.values)
Dialogs.showState(translate("FileUtils/SubFolders", "Writing File Informations"), 0, allItemNumber, True)
for rowNo in range(self.rowCount()):
isContinueThreadAction = uni.isContinueThreadAction()
if isContinueThreadAction:
try:
if fu.isWritableFileOrDir(self.values[rowNo]["path"], False, True):
if self.isRowHidden(rowNo):
fu.removeFileOrDir(self.values[rowNo]["path"])
self.changedValueNumber += 1
else:
baseNameOfDirectory = str(self.values[rowNo]["baseNameOfDirectory"])
baseName = str(self.values[rowNo]["baseName"])
if self.isChangeableItem(rowNo, "baseNameOfDirectory", baseNameOfDirectory):
baseNameOfDirectory = str(self.item(rowNo, 0).text())
self.changedValueNumber += 1
newDirectoryPath = fu.joinPath(
fu.getDirName(fu.getDirName(self.values[rowNo]["path"])),
baseNameOfDirectory)
self.setNewDirectory(newDirectoryPath)
if self.isChangeableItem(rowNo, "baseName", baseName, False):
baseName = str(self.item(rowNo, 1).text())
self.changedValueNumber += 1
newFilePath = fu.joinPath(str(self.values[rowNo]["path"]).replace(
fu.joinPath(str(self.values[rowNo]["baseNameOfDirectory"]),
str(self.values[rowNo]["baseName"])), ""),
baseNameOfDirectory, baseName)
oldFilePath = fu.getRealPath(self.values[rowNo]["path"])
newFilePath = fu.getRealPath(newFilePath)
if oldFilePath != newFilePath:
oldAndNewPaths = {}
oldAndNewPaths["oldPath"] = oldFilePath
oldAndNewPaths["newPath"] = fu.moveOrChange(oldFilePath, newFilePath, "file")
if oldFilePath != oldAndNewPaths["newPath"]:
oldAndNewPathValues.append(oldAndNewPaths)
oldDirName = fu.getDirName(oldFilePath)
if uni.getBoolValue("isClearEmptyDirectoriesWhenFileMove"):
fu.checkEmptyDirectories(oldDirName, True, True,
uni.getBoolValue("isAutoCleanSubFolderWhenFileMove"))
if (uni.isActiveDirectoryCover and
uni.getBoolValue("isActiveAutoMakeIconToDirectory") and
uni.getBoolValue("isAutoMakeIconToDirectoryWhenFileMove")):
fu.checkIcon(oldDirName)
fu.checkIcon(fu.getDirName(oldAndNewPaths["newPath"]))
except:
ReportBug.ReportBug()
else:
allItemNumber = rowNo + 1
Dialogs.showState(translate("FileUtils/SubFolders", "Writing File Informations"), rowNo + 1, allItemNumber,
True)
if isContinueThreadAction is False:
break
uni.finishThreadAction()
if (uni.isActiveAmarok and
uni.getBoolValue("isSubFolderTableValuesChangeInAmarokDB") and
len(oldAndNewPathValues) > 0):
import Amarok
from Amarok import Operations
Operations.changePaths(oldAndNewPathValues, "file")
return True
示例9: writeContents
# 需要导入模块: import FileUtils [as 别名]
# 或者: from FileUtils import removeFileOrDir [as 别名]
def writeContents(self):
self.changedValueNumber = 0
oldAndNewPathValues = []
startRowNo, rowStep = 0, 1
uni.startThreadAction()
allItemNumber = len(self.values)
Dialogs.showState(translate("FileUtils/Covers", "Writing Cover Informations"), 0, allItemNumber, True)
for rowNo in range(startRowNo, self.rowCount(), rowStep):
isContinueThreadAction = uni.isContinueThreadAction()
if isContinueThreadAction:
try:
if fu.isWritableFileOrDir(self.values[rowNo]["path"], False, True):
if self.isRowHidden(rowNo):
fu.removeFileOrDir(self.values[rowNo]["path"])
self.changedValueNumber += 1
else:
pathOfParentDirectory = str(
self.values[rowNo]["pathOfParentDirectory"])
baseName = str(self.values[rowNo]["baseName"])
if self.isChangeableItem(rowNo, "sourceCover") or self.isChangeableItem(rowNo, "destinationCover"):
sourcePath = self.values[rowNo]["sourceCover"]
destinationPath = self.values[rowNo]["destinationCover"]
if self.isChangeableItem(rowNo, "sourceCover"):
sourcePath = str(self.item(rowNo, 3).text()).strip()
if self.isChangeableItem(rowNo, "destinationCover"):
destinationPath = str(self.item(rowNo, 4).text()).strip()
if (str(self.item(rowNo,
2).text()) != sourcePath or sourcePath != destinationPath or str(
self.item(rowNo, 2).text()) != destinationPath) or (
str(self.item(rowNo, 2).text()) !=
self.values[rowNo]["currentCover"] and (
str(self.item(rowNo, 2).text()) != sourcePath and str(
self.item(rowNo, 2).text()) != destinationPath)):
if str(self.item(rowNo, 3).text()).strip() != "":
sourcePath = fu.getRealPath(sourcePath,
self.values[rowNo]["path"])
sourcePath = fu.checkSource(sourcePath, "file")
if sourcePath is not None:
if destinationPath != "":
destinationPath = fu.getRealPath(destinationPath,
self.values[
rowNo]["path"])
if sourcePath != destinationPath:
destinationPath = fu.moveOrChange(sourcePath, destinationPath)
else:
destinationPath = sourcePath
fu.setIconToDirectory(self.values[rowNo]["path"],
destinationPath)
self.changedValueNumber += 1
else:
fu.setIconToDirectory(self.values[rowNo]["path"], "")
self.changedValueNumber += 1
if self.isChangeableItem(rowNo, "baseNameOfDirectory", pathOfParentDirectory):
pathOfParentDirectory = str(self.item(rowNo, 0).text())
self.changedValueNumber += 1
if self.isChangeableItem(rowNo, "baseName", baseName, False):
baseName = str(self.item(rowNo, 1).text())
self.changedValueNumber += 1
newFilePath = fu.joinPath(pathOfParentDirectory, baseName)
oldFilePath = fu.getRealPath(self.values[rowNo]["path"])
newFilePath = fu.getRealPath(newFilePath)
if oldFilePath != newFilePath:
oldAndNewPaths = {}
oldAndNewPaths["oldPath"] = oldFilePath
oldAndNewPaths["newPath"] = fu.moveOrChange(oldFilePath, newFilePath, "directory")
if oldFilePath != oldAndNewPaths["newPath"]:
oldAndNewPathValues.append(oldAndNewPaths)
oldDirName = fu.getDirName(oldFilePath)
if uni.getBoolValue("isClearEmptyDirectoriesWhenFileMove"):
fu.checkEmptyDirectories(oldDirName, True, True,
uni.getBoolValue("isAutoCleanSubFolderWhenFileMove"))
except:
ReportBug.ReportBug()
else:
allItemNumber = rowNo + 1
Dialogs.showState(translate("FileUtils/Covers", "Writing Cover Informations"), rowNo + 1, allItemNumber,
True)
if isContinueThreadAction is False:
break
uni.finishThreadAction()
if len(oldAndNewPathValues) > 0:
from Amarok import Operations
Operations.changePaths(oldAndNewPathValues)
return True
示例10: writeContents
# 需要导入模块: import FileUtils [as 别名]
# 或者: from FileUtils import removeFileOrDir [as 别名]
def writeContents(self):
self.changedValueNumber = 0
oldAndNewPathValues = []
changingTags = []
uni.startThreadAction()
import Amarok
allItemNumber = len(self.values)
Dialogs.showState(translate("FileUtils/Musics", "Writing Music Tags"), 0, allItemNumber, True)
for rowNo in range(self.rowCount()):
isContinueThreadAction = uni.isContinueThreadAction()
if isContinueThreadAction:
try:
if self.isRowHidden(rowNo):
isWritableFileOrDir = fu.isFile(
self.values[rowNo]["path"]) and fu.isWritableFileOrDir(
self.values[rowNo]["path"], False, True)
if isWritableFileOrDir:
fu.removeFileOrDir(self.values[rowNo]["path"])
self.changedValueNumber += 1
else:
changingTag = {"path": self.values[rowNo]["path"]}
isWritableFileOrDir = fu.isFile(
self.values[rowNo]["path"]) and fu.isWritableFileOrDir(
self.values[rowNo]["path"], False, True)
isSetTagOfFile = False
if isWritableFileOrDir:
baseNameOfDirectory = str(
self.values[rowNo]["baseNameOfDirectory"])
baseName = str(self.values[rowNo]["baseName"])
if Amarok.getSelectedTagTargetType("AmarokMusicTable").find("To File") > -1:
isSetTagOfFile = True
tagger = Taggers.getTagger()
tagger.loadFileForWrite(self.values[rowNo]["path"])
if self.isChangeableItem(rowNo, "artist"):
value = str(self.item(rowNo, 2).text())
if isSetTagOfFile: tagger.setArtist(value)
changingTag["artist"] = value
Records.add(str(translate("MusicTable", "Artist")),
str(self.values[rowNo]["artist"]), value)
self.changedValueNumber += 1
if self.isChangeableItem(rowNo, "title"):
value = str(self.item(rowNo, 3).text())
if isSetTagOfFile: tagger.setTitle(value)
changingTag["title"] = value
Records.add(str(translate("MusicTable", "Title")),
str(self.values[rowNo]["title"]), value)
self.changedValueNumber += 1
if self.isChangeableItem(rowNo, "album"):
value = str(self.item(rowNo, 4).text())
if isSetTagOfFile: tagger.setAlbum(value)
changingTag["album"] = value
Records.add(str(translate("MusicTable", "Album")),
str(self.values[rowNo]["album"]), value)
self.changedValueNumber += 1
if self.isChangeableItem(rowNo, "albumArtist"):
value = str(self.item(rowNo, 5).text())
if isSetTagOfFile: tagger.setAlbumArtist(value)
changingTag["albumArtist"] = value
Records.add(str(translate("MusicTable", "Album Artist")),
str(self.values[rowNo]["albumArtist"]), value)
self.changedValueNumber += 1
if self.isChangeableItem(rowNo, "trackNum"):
value = str(self.item(rowNo, 6).text())
if isSetTagOfFile: tagger.setTrackNum(value)
changingTag["trackNum"] = value
Records.add(str(translate("MusicTable", "Track No")),
str(self.values[rowNo]["trackNum"]), value)
self.changedValueNumber += 1
if self.isChangeableItem(rowNo, "year"):
value = str(self.item(rowNo, 7).text())
if isSetTagOfFile: tagger.setDate(value)
changingTag["year"] = value
Records.add(str(translate("MusicTable", "Year")),
str(self.values[rowNo]["year"]), value)
self.changedValueNumber += 1
if self.isChangeableItem(rowNo, "genre"):
value = str(self.item(rowNo, 8).text())
if isSetTagOfFile: tagger.setGenre(value)
changingTag["genre"] = value
Records.add(str(translate("MusicTable", "Genre")),
str(self.values[rowNo]["genre"]), value)
self.changedValueNumber += 1
if self.isChangeableItem(rowNo, "firstComment"):
value = str(self.item(rowNo, 9).text())
if isSetTagOfFile: tagger.setFirstComment(value)
changingTag["firstComment"] = value
Records.add(str(translate("MusicTable", "Comment")),
str(self.values[rowNo]["firstComment"]), value)
self.changedValueNumber += 1
if self.isChangeableItem(rowNo, "firstLyrics"):
value = str(self.item(rowNo, 10).text())
if isSetTagOfFile: tagger.setFirstLyrics(value)
changingTag["firstLyrics"] = value
Records.add(str(translate("MusicTable", "Lyrics")),
str(self.values[rowNo]["firstLyrics"]), value)
self.changedValueNumber += 1
if len(changingTag) > 1:
changingTags.append(changingTag)
if isWritableFileOrDir:
#.........这里部分代码省略.........
示例11: install
# 需要导入模块: import FileUtils [as 别名]
# 或者: from FileUtils import removeFileOrDir [as 别名]
def install(self):
try:
MApplication.processEvents()
self.installationDirectory = str(self.leInstallationDirectory.text())
if len(self.installationDirectory) > 0:
if self.installationDirectory[-1] == fu.sep:
self.installationDirectory = self.installationDirectory[:-1]
if self.installationDirectory == fu.HamsiManagerDirectory:
self.pageNo -= 1
self.lblActions.setText("")
Dialogs.showError(translate("Install", "The path you selected is not valid."),
translate("Install",
"The selected path is Hamsi Manager source directory.<br>Please choose a valid installation path."))
elif fu.isFile(self.installationDirectory) is False:
isMakeInstall = True
if fu.isDir(self.installationDirectory) is False:
self.lblActions.setText(translate("Install", "Creating Installation Folder..."))
fu.makeDirs(self.installationDirectory)
elif len(fu.listDir(self.installationDirectory)) > 0:
currenctAnswer = Dialogs.askSpecial(
translate("Install", "The Installation Path You Selected Is Not Empty."),
translate("Install",
"If the path you selected is an \"Hamsi Manager\" installation path, <b>I recommend you to delete the older files.</b><br>Do you want me to clear the installation path/folder for you?<br><b>Note: </b> Your personal settings are <b>never deleted</b>."),
translate("Install", "Yes (Recommended)"),
translate("Install", "No (Overwrite)"),
translate("Install", "Cancel"))
if currenctAnswer == translate("Install", "Yes (Recommended)"):
self.lblActions.setText(translate("Install", "Clearing Installation Path..."))
try:fu.removeFileOrDir(self.installationDirectory)
except:pass
fu.makeDirs(self.installationDirectory)
isMakeInstall = True
elif currenctAnswer == translate("Install", "No (Overwrite)"):
isMakeInstall = True
else:
isMakeInstall = False
if isMakeInstall:
Settings.setUniversalSetting("pathOfInstallationDirectory", self.installationDirectory)
directoriesAndFiles = fu.readDirectoryWithSubDirectories(fu.HamsiManagerDirectory)
self.prgbState.setRange(0, len(directoriesAndFiles))
self.lblActions.setText(translate("Install", "Copying Files And Folders..."))
installFileName = Execute.findExecutableBaseName("HamsiManagerInstaller")
for fileNo, fileName in enumerate(directoriesAndFiles):
MApplication.processEvents()
newFileName = self.installationDirectory + fileName.replace(fu.HamsiManagerDirectory,"")
if fu.isDir(fileName) and fileName.find(".svn") == -1:
try: fu.makeDirs(newFileName)
except: pass
elif (fu.isFile(fileName) and fu.getBaseName(fileName) != "install.py" and
fu.getBaseName(fileName) != installFileName and fileName.find(".svn") == -1):
try:
fu.copyFileOrDir(fileName, newFileName)
except:
fileContent = fu.readFromBinaryFile(fileName)
fu.writeToBinaryFile(newFileName, fileContent)
self.prgbState.setValue(fileNo + 1)
self.pageNo += 1
MyConfigure.installKDE4Languages()
else:
self.pageNo -= 1
else:
self.pageNo -= 1
self.lblActions.setText("")
Dialogs.showError(translate("Install", "The path you selected is not valid."),
translate("Install",
"The selected path points to a file not a folder.<br>Please choose a valid installation path."))
else:
self.pageNo -= 1
self.lblActions.setText("")
Dialogs.showError(translate("Install", "The path you selected is not valid."),
translate("Install",
"The selected path points to a file not a folder.<br>Please choose a valid installation path."))
self.pageChanged(True)
except:
from Core import ReportBug
ReportBug.ReportBug()
示例12: backupEmbeddedDB
# 需要导入模块: import FileUtils [as 别名]
# 或者: from FileUtils import removeFileOrDir [as 别名]
def backupEmbeddedDB():
if fu.isDir(uni.getKDE4HomePath() + "/share/apps/amarok/mysqle_backup_for_hamsi"):
fu.removeFileOrDir(uni.getKDE4HomePath() + "/share/apps/amarok/mysqle_backup_for_hamsi")
fu.copyFileOrDir(uni.getKDE4HomePath() + "/share/apps/amarok/mysqle",
uni.getKDE4HomePath() + "/share/apps/amarok/mysqle_backup_for_hamsi")
示例13: writeContents
# 需要导入模块: import FileUtils [as 别名]
# 或者: from FileUtils import removeFileOrDir [as 别名]
def writeContents(self):
self.changedValueNumber = 0
oldAndNewPathValues = []
isNewDirectoriesSame = True
isMovedToNewDirectory = False
currentDirectoryPath = ""
newDirectoryPath = ""
startRowNo, rowStep = 0, 1
uni.startThreadAction()
allItemNumber = len(self.values)
Dialogs.showState(translate("FileUtils/Covers", "Writing Cover Informations"), 0, allItemNumber, True)
for rowNo in range(startRowNo, self.rowCount(), rowStep):
isContinueThreadAction = uni.isContinueThreadAction()
if isContinueThreadAction:
try:
if fu.isWritableFileOrDir(self.values[rowNo]["path"], False, True):
if self.isRowHidden(rowNo):
fu.removeFileOrDir(self.values[rowNo]["path"])
self.changedValueNumber += 1
else:
baseNameOfDirectory = str(
self.values[rowNo]["baseNameOfDirectory"])
baseName = str(self.values[rowNo]["baseName"])
if (self.isChangeableItem(rowNo, "sourceCover") or
self.isChangeableItem(rowNo, "destinationCover")):
sourcePath = self.values[rowNo]["sourceCover"]
destinationPath = self.values[rowNo]["destinationCover"]
if self.isChangeableItem(rowNo, "sourceCover"):
sourcePath = str(self.item(rowNo, 3).text()).strip()
if self.isChangeableItem(rowNo, "destinationCover"):
destinationPath = str(self.item(rowNo, 4).text()).strip()
if (str(self.item(rowNo,
2).text()) != sourcePath or sourcePath != destinationPath or str(
self.item(rowNo, 2).text()) != destinationPath) or (
str(self.item(rowNo, 2).text()) !=
self.values[rowNo]["currentCover"] and (
str(self.item(rowNo, 2).text()) != sourcePath and str(
self.item(rowNo, 2).text()) != destinationPath)):
if str(self.item(rowNo, 3).text()).strip() != "":
sourcePath = fu.getRealPath(sourcePath,
self.values[rowNo]["path"])
sourcePath = fu.checkSource(sourcePath, "file")
if sourcePath is not None:
if destinationPath != "":
destinationPath = fu.getRealPath(destinationPath,
self.values[
rowNo]["path"])
if sourcePath != destinationPath:
destinationPath = fu.moveOrChange(sourcePath, destinationPath)
else:
destinationPath = sourcePath
fu.setIconToDirectory(self.values[rowNo]["path"],
destinationPath)
self.changedValueNumber += 1
else:
fu.setIconToDirectory(self.values[rowNo]["path"], "")
self.changedValueNumber += 1
if self.isChangeableItem(rowNo, "baseNameOfDirectory", baseNameOfDirectory):
baseNameOfDirectory = str(self.item(rowNo, 0).text())
self.changedValueNumber += 1
isMovedToNewDirectory = True
currentDirectoryPath = fu.getDirName(
self.values[rowNo]["path"])
newDirectoryPath = fu.joinPath(
fu.getDirName(fu.getDirName(self.values[rowNo]["path"])),
baseNameOfDirectory)
self.setNewDirectory(newDirectoryPath)
if rowNo > 0:
if str(self.item(rowNo - 1, 0).text()) != baseNameOfDirectory:
isNewDirectoriesSame = False
if self.isChangeableItem(rowNo, "baseName", baseName, False):
baseName = str(self.item(rowNo, 1).text())
self.changedValueNumber += 1
newFilePath = fu.joinPath(
fu.getDirName(fu.getDirName(self.values[rowNo]["path"])),
baseNameOfDirectory, baseName)
oldFilePath = fu.getRealPath(self.values[rowNo]["path"])
newFilePath = fu.getRealPath(newFilePath)
if oldFilePath != newFilePath:
oldAndNewPaths = {}
oldAndNewPaths["oldPath"] = oldFilePath
oldAndNewPaths["newPath"] = fu.moveOrChange(oldFilePath, newFilePath, "directory")
if oldFilePath != oldAndNewPaths["newPath"]:
oldAndNewPathValues.append(oldAndNewPaths)
oldDirName = fu.getDirName(oldFilePath)
if uni.getBoolValue("isClearEmptyDirectoriesWhenFileMove"):
fu.checkEmptyDirectories(oldDirName, True, True,
uni.getBoolValue("isAutoCleanSubFolderWhenFileMove"))
except:
ReportBug.ReportBug()
else:
allItemNumber = rowNo + 1
Dialogs.showState(translate("FileUtils/Covers", "Writing Cover Informations"), rowNo + 1, allItemNumber,
True)
if isContinueThreadAction is False:
break
uni.finishThreadAction()
if self.rowCount() == len(oldAndNewPathValues) and isMovedToNewDirectory and isNewDirectoriesSame:
otherFileNames = fu.readDirectory(currentDirectoryPath, "fileAndDirectory", True)
if len(otherFileNames) > 0:
#.........这里部分代码省略.........
示例14: writeContents
# 需要导入模块: import FileUtils [as 别名]
# 或者: from FileUtils import removeFileOrDir [as 别名]
def writeContents(self):
self.changedValueNumber = 0
oldAndNewPathValues = []
changingTags = []
isNewDirectoriesSame = True
isMovedToNewDirectory = False
currentDirectoryPath = ""
newDirectoryPath = ""
if uni.isActiveAmarok and uni.getBoolValue("isMusicTableValuesChangeInAmarokDB"):
import Amarok
if Amarok.checkAmarok(True, False) is False:
return False
uni.startThreadAction()
allItemNumber = len(self.values)
Dialogs.showState(translate("FileUtils/Musics", "Writing Music Tags"), 0, allItemNumber, True)
for rowNo in range(self.rowCount()):
isContinueThreadAction = uni.isContinueThreadAction()
if isContinueThreadAction:
try:
changingTag = {"path": self.values[rowNo]["path"]}
if fu.isWritableFileOrDir(self.values[rowNo]["path"], False, True):
if self.isRowHidden(rowNo):
fu.removeFileOrDir(self.values[rowNo]["path"])
self.changedValueNumber += 1
else:
baseNameOfDirectory = str(
self.values[rowNo]["baseNameOfDirectory"])
baseName = str(self.values[rowNo]["baseName"])
tagger = Taggers.getTagger()
tagger.loadFileForWrite(self.values[rowNo]["path"])
isCheckLike = (tagger.isNeedUpdate or
(uni.isActiveAmarok and
uni.getBoolValue("isMusicTableValuesChangeInAmarokDB")))
if self.isChangeableItem(rowNo, "artist", self.values[rowNo]["artist"], True, isCheckLike):
value = str(self.item(rowNo, 2).text())
tagger.setArtist(value)
changingTag["artist"] = value
Records.add(str(translate("MusicTable", "Artist")),
str(self.values[rowNo]["artist"]), value)
self.changedValueNumber += 1
if self.isChangeableItem(rowNo, "title", self.values[rowNo]["title"], True, isCheckLike):
value = str(self.item(rowNo, 3).text())
tagger.setTitle(value)
changingTag["title"] = value
Records.add(str(translate("MusicTable", "Title")),
str(self.values[rowNo]["title"]), value)
self.changedValueNumber += 1
if self.isChangeableItem(rowNo, "album", self.values[rowNo]["album"], True, isCheckLike):
value = str(self.item(rowNo, 4).text())
tagger.setAlbum(value)
changingTag["album"] = value
Records.add(str(translate("MusicTable", "Album")),
str(self.values[rowNo]["album"]), value)
self.changedValueNumber += 1
if self.isChangeableItem(rowNo, "albumArtist", self.values[rowNo]["albumArtist"], True,
isCheckLike):
value = str(self.item(rowNo, 5).text())
tagger.setAlbumArtist(value)
changingTag["albumArtist"] = value
Records.add(str(translate("MusicTable", "Album Artist")),
str(self.values[rowNo]["albumArtist"]), value)
self.changedValueNumber += 1
if self.isChangeableItem(rowNo, "trackNum", self.values[rowNo]["trackNum"],
True, isCheckLike):
value = str(self.item(rowNo, 6).text())
tagger.setTrackNum(value)
changingTag["trackNum"] = value
Records.add(str(translate("MusicTable", "Track No")),
str(self.values[rowNo]["trackNum"]), value)
self.changedValueNumber += 1
if self.isChangeableItem(rowNo, "year", self.values[rowNo]["year"], True, isCheckLike):
value = str(self.item(rowNo, 7).text())
tagger.setDate(value)
changingTag["year"] = value
Records.add(str(translate("MusicTable", "Year")),
str(self.values[rowNo]["year"]), value)
self.changedValueNumber += 1
if self.isChangeableItem(rowNo, "genre", self.values[rowNo]["genre"], True, isCheckLike):
value = str(self.item(rowNo, 8).text())
tagger.setGenre(value)
changingTag["genre"] = value
Records.add(str(translate("MusicTable", "Genre")),
str(self.values[rowNo]["genre"]), value)
self.changedValueNumber += 1
if self.isChangeableItem(rowNo, "firstComment", self.values[rowNo]["firstComment"],
True, isCheckLike):
value = str(self.item(rowNo, 9).text())
tagger.setFirstComment(value)
changingTag["firstComment"] = value
Records.add(str(translate("MusicTable", "Comment")),
str(self.values[rowNo]["firstComment"]), value)
self.changedValueNumber += 1
if self.isChangeableItem(rowNo, "firstLyrics", self.values[rowNo]["firstLyrics"],
True, isCheckLike):
value = str(self.item(rowNo, 10).text())
tagger.setFirstLyrics(value)
changingTag["firstLyrics"] = value
Records.add(str(translate("MusicTable", "Lyrics")),
str(self.values[rowNo]["firstLyrics"]), value)
#.........这里部分代码省略.........