Utilities/FtpUtilities.py

changeset 2050
585f6646bf50
parent 2047
739aa1717df5
child 2051
644d5a2585a8
equal deleted inserted replaced
2048:da2d82f84924 2050:585f6646bf50
4 # 4 #
5 5
6 """ 6 """
7 Module implementing some FTP related utilities. 7 Module implementing some FTP related utilities.
8 """ 8 """
9
10 import os
9 11
10 from PyQt4.QtCore import QObject, QDate, QDateTime, QTime 12 from PyQt4.QtCore import QObject, QDate, QDateTime, QTime
11 from PyQt4.QtNetwork import QUrlInfo 13 from PyQt4.QtNetwork import QUrlInfo
12 14
13 15
97 urlInfo.setPermissions(permission) 99 urlInfo.setPermissions(permission)
98 100
99 if modeString[0] == "d": 101 if modeString[0] == "d":
100 urlInfo.setDir(True) 102 urlInfo.setDir(True)
101 urlInfo.setFile(False) 103 urlInfo.setFile(False)
104 urlInfo.setSymLink(False)
102 elif modeString[0] == "l": 105 elif modeString[0] == "l":
106 urlInfo.setDir(False)
107 urlInfo.setFile(False)
103 urlInfo.setSymLink(True) 108 urlInfo.setSymLink(True)
104 elif modeString[0] == "-": 109 elif modeString[0] == "-":
105 urlInfo.setDir(False) 110 urlInfo.setDir(True)
106 urlInfo.setFile(True) 111 urlInfo.setFile(True)
112 urlInfo.setSymLink(False)
107 113
108 def __parseUnixTime(self, monthAbbreviation, day, yearOrTime, urlInfo): 114 def __parseUnixTime(self, monthAbbreviation, day, yearOrTime, urlInfo):
109 """ 115 """
110 Private method to parse a Unix date and time indication modifying 116 Private method to parse a Unix date and time indication modifying
111 the given URL info object. 117 the given URL info object.
269 urlInfo.setSize(int(dirOrSize)) 275 urlInfo.setSize(int(dirOrSize))
270 except ValueError: 276 except ValueError:
271 raise FtpDirLineParserError("illegal size '{0}'".format(dirOrSize)) 277 raise FtpDirLineParserError("illegal size '{0}'".format(dirOrSize))
272 urlInfo.setName(name) 278 urlInfo.setName(name)
273 279
280 ext = os.path.splitext(name.lower())[1]
281 urlInfo.setSymLink(ext == ".lnk")
282
283 permissions = (QUrlInfo.ReadOwner | QUrlInfo.WriteOwner
284 | QUrlInfo.ReadGroup | QUrlInfo.WriteGroup
285 | QUrlInfo.ReadOther | QUrlInfo.WriteOther)
286 if ext in [".exe", ".com", ".bat", ".cmd"]:
287 permissions |= QUrlInfo.ExeOwner | QUrlInfo.ExeGroup | QUrlInfo.ExeOther
288 urlInfo.setPermissions(permissions)
289
274 return urlInfo 290 return urlInfo
275 291
276 def parseLine(self, line): 292 def parseLine(self, line):
277 """ 293 """
278 Private method to parse a directory listing line. 294 Private method to parse a directory listing line.

eric ide

mercurial