ບໍລິການ ScriptForge.FileSystem

ບໍລິການ FileSystem ລວມມີຣູທີນຕ່າງໆເພື່ອຈັດການໄຟລ໌ ແລະ ໂຟນເດີ. ຕໍ່ໄປນີ້ແມ່ນບາງຕົວຢ່າງຂອງຄຸນສົມບັດທີ່ບໍລິການນີ້ສະໜອງໃຫ້:

ໄອຄອນ ບັນທຶກ

ວິທີການຕ່າງໆໃນບໍລິການ FileSystem ສ່ວນໃຫຍ່ແມ່ນອີງຕາມ ອິນເຕີເຟດ UNO XSimpleFileAccess.


ຄຳນິຍາມ

ຕາຕະລາງລຸ່ມນີ້ລະບຸພາລາມິເຕີຫຼັກທີ່ໃຊ້ໂດຍວິທີການສ່ວນໃຫຍ່ໃນບໍລິການ FileSystem.

ພາລາມິເຕີ

ຄຳອະທິບາຍ

FileName

ຊື່ເຕັມຂອງໄຟລ໌ລວມທັງເສັ້ນທາງໂດຍບໍ່ມີຕົວແຍກເສັ້ນທາງຢູ່ທ້າຍ.

FolderName

ຊື່ເຕັມຂອງໂຟນເດີລວມທັງເສັ້ນທາງ. ມັນອາດຈະມີ ຫຼື ບໍ່ມີຕົວແຍກເສັ້ນທາງຢູ່ທ້າຍກໍໄດ້.

Name

ສ່ວນປະກອບສຸດທ້າຍຂອງ ຊື່ໂຟນເດີ ຫຼື ຊື່ໄຟລ໌ ລວມທັງນາມສະກຸນຂອງມັນ. ພາລາມິເຕີນີ້ຈະຖືກສະແດງໂດຍໃຊ້ຮູບແບບຂອງລະບົບປະຕິບັດການຕົ້ນສະບັບສະເໝີ.

BaseName

ສ່ວນປະກອບສຸດທ້າຍຂອງ ຊື່ໂຟນເດີ ຫຼື ຊື່ໄຟລ໌ ໂດຍບໍ່ລວມນາມສະກຸນ.

NamePattern

ຊື່ໃດໆກໍຕາມຂ້າງເທິງນັ້ນທີ່ມີຕົວແທນ (wildcards) ໃນສ່ວນປະກອບສຸດທ້າຍຂອງມັນ. ຕົວແທນທີ່ອະນຸຍາດຄື:

  • "?" ແທນໃຫ້ຕົວອັກສອນດຽວໃດໜຶ່ງ

  • "*" ແທນໃຫ້ບໍ່ມີເລີຍ, ໜຶ່ງ ຫຼື ຫຼາຍຕົວອັກສອນ


ໄອຄອນ ເຄັດລັບ

ບໍລິການ FileSystem ອະນຸຍາດໃຫ້ດຳເນີນການກັບຫຼາຍໆໄຟລ໌ພ້ອມກັນໄດ້. ໂດຍການໃຊ້ຮູບແບບຊື່, ສະຄຣິບຂອງຜູ້ໃຊ້ສາມາດສຳເນົາ, ຍ້າຍ ຫຼື ລຶບຫຼາຍໆໄຟລ໌ໄດ້. ໃນທາງກົງກັນຂ້າມ, ວິທີການທີ່ມີມາໃຫ້ໃນ Basic ສາມາດຈັດການໄດ້ພຽງແຕ່ເທື່ອລະໄຟລ໌ເທົ່ານັ້ນ.


ຮູບແບບການຕັ້ງຊື່ໄຟລ໌

ຮູບແບບທີ່ໃຊ້ເພື່ອສະແດງຊື່ໄຟລ໌ ແລະ ໂຟນເດີ, ທັງສຳລັບຂໍ້ໂຕ້ແຍ້ງ ແລະ ຄ່າທີ່ສົ່ງຄືນ, ແມ່ນຖືກກຳນົດໂດຍຄຸນສົມບັດ FileNaming ຂອງບໍລິການ FileSystem.

ໂດຍຫຍໍ້, ປະເພດການສະແດງຜົນທີ່ເປັນໄປໄດ້ຄື "URL" (ຮູບແບບໄຟລ໌ URL), "SYS" (ຮູບແບບລະບົບປະຕິບັດການ) ແລະ "ANY" (ຄ່າເລີ່ມຕົ້ນ). ເບິ່ງຂໍ້ມູນເພີ່ມເຕີມໄດ້ທີ່ ຂ້າງລຸ່ມນີ້.

ໄອຄອນ ເຄັດລັບ

ຕົວຢ່າງຂອງຮູບແບບ URL ຄື file:///C:/Documents/my_file.odt. ເມື່ອໃດກໍຕາມທີ່ເປັນໄປໄດ້ ຄວນພິຈາລະນາໃຊ້ຮູບແບບ URL ເພາະວ່າມັນເປັນທາງເລືອກທີ່ສາມາດນຳໄປໃຊ້ໄດ້ກັບຫຼາຍລະບົບຫຼາຍກວ່າ.


ໄອຄອນ ຄຳເຕືອນ

ການໃຊ້ທາງລັດ "~" (tilde), ເຊິ່ງພົບເລື້ອຍໃນລະບົບປະຕິບັດການ Linux, ແມ່ນບໍ່ຮອງຮັບໃນການສະແດງເສັ້ນທາງໄປຫາໂຟນເດີ ແລະ ຊື່ໄຟລ໌. ແທນທີ່ຈະໃຊ້ "~/Documents/my_file.odt" ໃຫ້ໃຊ້ເສັ້ນທາງເຕັມ "/home/user/Documents/my_file.odt".


ການເອີ້ນໃຊ້ບໍລິການ

ສ່ວນຂອງລະຫັດຕໍ່ໄປນີ້ເອີ້ນໃຊ້ບໍລິການ FileSystem. ວິທີການ BuildPath ຖືກໃຊ້ເປັນຕົວຢ່າງ.

ໃນ Basic

      GlobalScope.BasicLibraries.LoadLibrary("ScriptForge")
      Dim FSO As Object
      Set FSO = CreateScriptService("FileSystem")
      FSO.BuildPath(...)
    
ໃນ Python

      from scriptforge import CreateScriptService
      fs = CreateScriptService("FileSystem")
      fs.BuildPath(...)
    

ການເຂົ້າເຖິງລະບົບໄຟລ໌ສະເມືອນຂອງເອກະສານ

ໄຟລ໌ເອກະສານຂອງ LibreOffice ແມ່ນໄຟລ໌ ZIP ທີ່ຖືກບີບອັດເຊິ່ງບັນຈຸໄຟລ໌ ແລະ ໂຟນເດີທີ່ສະແດງເຖິງເນື້ອຫາຕົວຈິງຂອງເອກະສານ. ໃນຂະນະທີ່ເອກະສານຖືກເປີດຢູ່, ເຮົາສາມາດເຂົ້າເຖິງລະບົບໄຟລ໌ສະເມືອນນີ້, ສຳຫຼວດໂຄງສ້າງຂອງມັນ, ລວມທັງອ່ານ ແລະ ສ້າງໄຟລ໌ ແລະ ໂຟນເດີໄດ້.

ຕົວຢ່າງຕໍ່ໄປນີ້ສະແດງໃຫ້ເຫັນວິທີການສ້າງໄຟລ໌ຂໍ້ຄວາມຊື່ myFile.txt ແລະ ເກັບມັນໄວ້ໃນລະບົບໄຟລ໌ສະເມືອນຂອງເອກະສານ.

ໃນ Basic

    GlobalScope.BasicLibraries.LoadLibrary("ScriptForge")
    Dim oDoc As Object, fso As Object, oFile As Object
    Dim sRoot, sFile, sMyDir
    Set fso = CreateScriptService("FileSystem")
    Set oDoc = CreateScriptService("Document", ThisComponent)
    ' ຮັບເອົາຮູບແບບເສັ້ນທາງ URL ໄປຫາຮາກ (root) ຂອງລະບົບໄຟລ໌ສະເມືອນ
    sRoot = oDoc.FileSystem()
    sMyDir = sRoot & "myDir"
    ' ສ້າງໂຟນເດີ "myDir" ຖ້າມັນຍັງບໍ່ມີຢູ່
    If Not fso.FolderExists(sMyDir) Then
        fso.CreateFolder(sMyDir)
    End If
    ' ສ້າງໄຟລ໌ ແລະ ຂຽນຂໍ້ຄວາມບາງຢ່າງລົງໄປ
    sFile = fso.BuildPath(sMyDir, "myFile.txt")
    oFile = fso.CreateTextFile(sFile)
    oFile.WriteLine("Hello!")
    oFile.CloseFile()
  
ໃນ Python

    from scriptforge import CreateScriptService
    bas = CreateScriptService("Basic")
    doc = CreateScriptService("Document", bas.ThisComponent)
    fso = CreateScriptService("FileSystem")
    sRoot = doc.FileSystem
    sMyDir = sRoot + "myDir"
    if not fso.FolderExists(sMyDir):
        fso.CreateFolder(sMyDir)
    sFile = fso.BuildPath(sMyDir, "myFile.txt")
    oFile = fso.CreateTextFile(sFile)
    oFile.WriteLine("Hello!")
    oFile.CloseFile()
  

ໂດຍທົ່ວໄປແລ້ວ, ວິທີການທັງໝົດຂອງບໍລິການ FileSystem ສາມາດໃຊ້ເພື່ອຈັດການໄຟລ໌ໃນລະບົບໄຟລ໌ສະເມືອນຂອງເອກະສານໄດ້. ແນວໃດກໍຕາມ, ມີຂໍ້ຈຳກັດດັ່ງຕໍ່ໄປນີ້:

ໄອຄອນ ບັນທຶກ

ເສັ້ນທາງໄປຫາລະບົບໄຟລ໌ສະເມືອນບໍ່ແມ່ນທີ່ຢູ່ທາງກາຍະພາບໃນຮາດໄດຣຟ໌ຂອງຄອມພິວເຕີ. ມັນສາມາດເຂົ້າເຖິງໄດ້ຈາກພາຍໃນສະຄຣິບຂອງ LibreOffice ເທົ່ານັ້ນ ແລະ ມັນຈະມີຢູ່ສະເພາະໃນຂະນະທີ່ໄຟລ໌ເອກະສານຖືກເປີດຢູ່.


ຄຸນສົມບັດ

ຊື່

ອ່ານໄດ້ຢ່າງດຽວ

ປະເພດ

ຄຳອະທິບາຍ

FileNaming

ບໍ່

String

ຕັ້ງຄ່າ ຫຼື ສົ່ງຄືນຮູບແບບໄຟລ໌ ແລະ ໂຟນເດີປັດຈຸບັນ, ເຊິ່ງອາດຈະເປັນ "ANY", "URL" ຫຼື "SYS":

  • "ANY": (ຄ່າເລີ່ມຕົ້ນ) ວິທີການຕ່າງໆຂອງບໍລິການ FileSystem ຍອມຮັບທັງຮູບແບບ URL ແລະ ຮູບແບບຂອງລະບົບປະຕິບັດການປັດຈຸບັນສຳລັບຂໍ້ໂຕ້ແຍ້ງທີ່ປ້ອນເຂົ້າ ແຕ່ຈະສົ່ງຄືນເປັນສາຍອັກຂະລະ URL ສະເໝີ.

  • "URL": ວິທີການຕ່າງໆຂອງບໍລິການ FileSystem ຄາດຫວັງໃຫ້ໃຊ້ຮູບແບບ URL ສຳລັບຂໍ້ໂຕ້ແຍ້ງທີ່ປ້ອນເຂົ້າ ແລະ ຈະສົ່ງຄືນເປັນສາຍອັກຂະລະ URL.

  • "SYS": ວິທີການຕ່າງໆຂອງບໍລິການ FileSystem ຄາດຫວັງໃຫ້ໃຊ້ຮູບແບບຂອງລະບົບປະຕິບັດການປັດຈຸບັນສຳລັບທັງຂໍ້ໂຕ້ແຍ້ງທີ່ປ້ອນເຂົ້າ ແລະ ຄ່າທີ່ສົ່ງຄືນ.

ເມື່ອຖືກຕັ້ງຄ່າແລ້ວ, ຄຸນສົມບັດ FileNaming ຈະບໍ່ປ່ຽນແປງຈົນກວ່າຈະສິ້ນສຸດເຊດຊັນ (session) ຂອງ LibreOffice ຫຼື ຈົນກວ່າມັນຈະຖືກຕັ້ງຄ່າໃໝ່.

ConfigFolder

ແມ່ນ

String

ສົ່ງຄືນໂຟນເດີການຕັ້ງຄ່າ (configuration) ຂອງ LibreOffice.

ExtensionsFolder

ແມ່ນ

String

ສົ່ງຄືນໂຟນເດີທີ່ຕິດຕັ້ງສ່ວນເສີມ (extensions) ຕ່າງໆໄວ້.

HomeFolder

ແມ່ນ

String

ສົ່ງຄືນໂຟນເດີຫຼັກ (home folder) ຂອງຜູ້ໃຊ້.

InstallFolder

ແມ່ນ

String

ສົ່ງຄືນໂຟນເດີທີ່ຕິດຕັ້ງໂປຣແກຣມ LibreOffice.

TemplatesFolder

ແມ່ນ

String

ສົ່ງຄືນໂຟນເດີທີ່ບັນຈຸໄຟລ໌ແມ່ແບບ (templates) ຂອງລະບົບ.

TemporaryFolder

ແມ່ນ

String

ສົ່ງຄືນໂຟນເດີໄຟລ໌ຊົ່ວຄາວທີ່ຖືກກຳນົດໄວ້ໃນການຕັ້ງຄ່າເສັ້ນທາງຂອງ LibreOffice.

UserTemplatesFolder

ແມ່ນ

String

ສົ່ງຄືນໂຟນເດີທີ່ບັນຈຸໄຟລ໌ແມ່ແບບທີ່ຜູ້ໃຊ້ກຳນົດເອງ.


ລາຍຊື່ວິທີການໃນບໍລິການ FileSystem

BuildPath
CompareFiles
CopyFile
CopyFolder
CreateFolder
CreateTextFile
DeleteFile
DeleteFolder
ExtensionFolder

FileExists
Files
FolderExists
GetBaseName
GetExtension
GetFileLen
GetFileModified
GetName
GetParentFolderName

GetTempName
HashFile
MoveFile
MoveFolder
Normalize
OpenTextFile
PickFile
PickFolder
SubFolders


BuildPath

ລວມເສັ້ນທາງໂຟນເດີ ແລະ ຊື່ຂອງໄຟລ໌ເຂົ້າກັນ ແລະ ສົ່ງຄືນຊື່ໄຟລ໌ເຕັມພ້ອມກັບຕົວແຍກເສັ້ນທາງທີ່ຖືກຕ້ອງ. ຕົວແຍກເສັ້ນທາງຈະຖືກເພີ່ມເຂົ້າເມື່ອມີຄວາມຈຳເປັນເທົ່ານັ້ນ.

ໄວຍາກອນ:

svc.BuildPath(foldername: str, name: str): str

ພາຣາມິເຕີ:

foldername: ເສັ້ນທາງທີ່ຈະຖືກນຳມາລວມເຂົ້າກັບ name. ເສັ້ນທາງທີ່ລະບຸບໍ່ຈຳເປັນຕ້ອງແມ່ນໂຟນເດີທີ່ມີຢູ່ແລ້ວ.

name: ຊື່ຂອງໄຟລ໌ທີ່ຈະນຳມາຕໍ່ໃສ່ foldername. ພາລາມິເຕີນີ້ໃຊ້ຮູບແບບຂອງລະບົບປະຕິບັດການປັດຈຸບັນ.

ຕົວຢ່າງ:

ໃນ Basic

      Dim FSO as Object
      Set FSO = CreateScriptService("FileSystem")
      Dim aFileName as String
      FSO.FileNaming = "URL"
      aFileName = FSO.BuildPath("file:///home/user", "sample file.odt")
      ' file:///home/user/sample%20file.odt
    
ໃນ Python

      fs = CreateScriptService("FileSystem")
      fs.FileNaming = "URL"
      aFileName = fs.BuildPath("file:///home/user", "sample file.odt")
      # file:///home/user/sample%20file.odt
    

CompareFiles

ປຽບທຽບສອງໄຟລ໌ ແລະ ສົ່ງຄືນ True ເມື່ອພວກມັນເບິ່ງຄືວ່າຄືກັນ.

ຂຶ້ນຢູ່ກັບຄ່າຂອງຂໍ້ໂຕ້ແຍ້ງ comparecontents, ການປຽບທຽບລະຫວ່າງທັງສອງໄຟລ໌ອາດຈະອີງຕາມຄຸນລັກສະນະຂອງໄຟລ໌ເທົ່ານັ້ນ (ເຊັ່ນ: ວັນທີແກ້ໄຂຄັ້ງຫຼ້າສຸດ), ຫຼື ອີງຕາມເນື້ອຫາຂອງໄຟລ໌.

ໄວຍາກອນ:

svc.CompareFiles(filename1: str, filename2: str, comparecontents: bool = False): bool

ພາຣາມິເຕີ:

filename1, filename2: ໄຟລ໌ຕ່າງໆທີ່ຈະນຳມາປຽບທຽບ.

comparecontents: ເມື່ອເປັນ True, ເນື້ອຫາຂອງໄຟລ໌ຈະຖືກປຽບທຽບກັນ (ຄ່າເລີ່ມຕົ້ນ = False).

ຕົວຢ່າງ:

ໃນ Basic

      FSO.FileNaming = "SYS"
      If FSO.CompareFiles("C:\myFile1.txt", "C:\myFile2.txt", CompareContents := False) Then
          ' ...
      End If
    
ໃນ Python

      fs.FileNaming = "SYS"
      if fs.CompareFiles(r"C:\myFile1.txt", r"C:\myFile2.txt", comparecontents = False):
          # ...
    

CopyFile

ສຳເນົາໜຶ່ງໄຟລ໌ ຫຼື ຫຼາຍກວ່າຈາກສະຖານທີ່ໜຶ່ງໄປຍັງອີກບ່ອນໜຶ່ງ. ສົ່ງຄືນ True ຖ້າມີຢ່າງໜ້ອຍໜຶ່ງໄຟລ໌ຖືກສຳເນົາແລ້ວ ຫຼື False ຖ້າມີຂໍ້ຜິດພາດເກີດຂຶ້ນ.

ຂໍ້ຜິດພາດຈະເກີດຂຶ້ນຄືກັນ ຖ້າພາລາມິເຕີ source ໃຊ້ຕົວອັກສອນຕົວແທນ (wildcard) ແລ້ວບໍ່ກົງກັບໄຟລ໌ໃດໆ.

ວິທີການນີ້ຈະຢຸດທັນທີຫຼັງຈາກພົບຂໍ້ຜິດພາດ. ວິທີການນີ້ຈະບໍ່ມີການຍ້ອນກັບ (roll back) ຫຼື ຍົກເລີກການປ່ຽນແປງທີ່ເກີດຂຶ້ນກ່ອນທີ່ຈະພົບຂໍ້ຜິດພາດ.

ໄວຍາກອນ:

svc.CopyFile(source: str, destination: str, overwrite: bool = True): bool

ພາຣາມິເຕີ:

source: ມັນສາມາດເປັນ FileName ຫຼື NamePattern ທີ່ລະບຸໜຶ່ງໄຟລ໌ ຫຼື ຫຼາຍກວ່າທີ່ຈະຖືກສຳເນົາ.

destination: ມັນສາມາດເປັນໄດ້ທັງ FileName ທີ່ລະບຸບ່ອນທີ່ໄຟລ໌ source ດຽວຈະຖືກສຳເນົາໄປ, ຫຼື FolderName ບ່ອນທີ່ຈະສຳເນົາຫຼາຍໆໄຟລ໌ຈາກ source ເຂົ້າໄປ.

overwrite: ຖ້າເປັນ True (ຄ່າເລີ່ມຕົ້ນ), ໄຟລ໌ຕ່າງໆອາດຈະຖືກຂຽນທັບ. ວິທີການນີ້ຈະບໍ່ສຳເລັດຖ້າ destination ແມ່ນອ່ານໄດ້ຢ່າງດຽວ, ບໍ່ວ່າຈະກຳນົດຄ່າໃນ overwrite ເປັນແນວໃດກໍຕາມ.

ຕົວຢ່າງ:

ໃນຕົວຢ່າງລຸ່ມນີ້ ແຖວທຳອິດແມ່ນການສຳເນົາໄຟລ໌ດຽວ ໃນຂະນະທີ່ແຖວທີສອງແມ່ນການສຳເນົາຫຼາຍໆໄຟລ໌ໂດຍໃຊ້ຕົວແທນ (wildcards).

ໃນ Basic

      FSO.CopyFile("C:\Documents\my_file.odt", "C:\Temp\copied_file.odt")
      FSO.CopyFile("C:\Documents\*.*", "C:\Temp\", Overwrite := False)
    
ໃນ Python

      fs.CopyFile(r"C:\Documents\my_file.odt", r"C:\Temp\copied_file.odt")
      fs.CopyFile(r"C:\Documents\*.*", r"C:\Temp", overwrite = False)
    
ໄອຄອນ ບັນທຶກ

ຂໍໃຫ້ຮັບຮູ້ວ່າ ໂຟນເດີຍ່ອຍ ແລະ ເນື້ອຫາພາຍໃນຂອງພວກມັນຈະບໍ່ຖືກສຳເນົາໄປນຳ ເມື່ອມີການໃຊ້ຕົວແທນ (wildcards) ໃນຂໍ້ໂຕ້ແຍ້ງ source.


CopyFolder

ສຳເນົາໜຶ່ງໂຟນເດີ ຫຼື ຫຼາຍກວ່າຈາກສະຖານທີ່ໜຶ່ງໄປຍັງອີກບ່ອນໜຶ່ງ. ສົ່ງຄືນ True ຖ້າມີຢ່າງໜ້ອຍໜຶ່ງໂຟນເດີຖືກສຳເນົາແລ້ວ ຫຼື False ຖ້າມີຂໍ້ຜິດພາດເກີດຂຶ້ນ.

ຂໍ້ຜິດພາດຈະເກີດຂຶ້ນຄືກັນ ຖ້າພາລາມິເຕີ source ໃຊ້ຕົວອັກສອນຕົວແທນ (wildcard) ແລ້ວບໍ່ກົງກັບໂຟນເດີໃດໆ.

ວິທີການນີ້ຈະຢຸດທັນທີຫຼັງຈາກພົບຂໍ້ຜິດພາດ. ວິທີການນີ້ຈະບໍ່ມີການຍ້ອນກັບ (roll back) ຫຼື ຍົກເລີກການປ່ຽນແປງທີ່ເກີດຂຶ້ນກ່ອນທີ່ຈະພົບຂໍ້ຜິດພາດ.

ໄວຍາກອນ:

svc.CopyFolder(source: str, destination: str, overwrite: bool = True): bool

ພາຣາມິເຕີ:

source: ມັນສາມາດເປັນ FolderName ຫຼື NamePattern ທີ່ລະບຸໜຶ່ງໂຟນເດີ ຫຼື ຫຼາຍກວ່າທີ່ຈະຖືກສຳເນົາ.

destination: ລະບຸ FolderName ບ່ອນທີ່ຈະສຳເນົາໜຶ່ງ ຫຼື ຫຼາຍໂຟນເດີທີ່ກຳນົດໃນ source ເຂົ້າໄປ.

overwrite: ຖ້າເປັນ True (ຄ່າເລີ່ມຕົ້ນ), ໄຟລ໌ຕ່າງໆອາດຈະຖືກຂຽນທັບ. ວິທີການນີ້ຈະບໍ່ສຳເລັດຖ້າ destination ແມ່ນອ່ານໄດ້ຢ່າງດຽວ, ບໍ່ວ່າຈະກຳນົດຄ່າໃນ overwrite ເປັນແນວໃດກໍຕາມ.

ຕົວຢ່າງ:

ໃນຕົວຢ່າງລຸ່ມນີ້ ໄຟລ໌, ໂຟນເດີ ແລະ ໂຟນເດີຍ່ອຍທັງໝົດຈະຖືກສຳເນົາ.


      ' Basic
      FSO.CopyFolder("C:\Documents\*", "C:\Temp\", Overwrite := False)
    

      # Python
      fs.CopyFolder(r"C:\Documents\*", r"C:\Temp", overwrite = False)
    

CreateFolder

ສ້າງ FolderName ທີ່ລະບຸໄວ້. ສົ່ງຄືນ True ຖ້າໂຟນເດີສາມາດຖືກສ້າງໄດ້ສຳເລັດ.

ຖ້າໂຟນເດີທີ່ລະບຸມີໂຟນເດີແມ່ (parent folder) ທີ່ຍັງບໍ່ມີຢູ່, ມັນກໍຈະຖືກສ້າງຂຶ້ນຄືກັນ.

ໄວຍາກອນ:

svc.CreateFolder(foldername: str): bool

ພາຣາມິເຕີ:

foldername: ສາຍອັກຂະລະທີ່ສະແດງເຖິງໂຟນເດີທີ່ຈະຖືກສ້າງ. ຖ້າໂຟນເດີມີຢູ່ແລ້ວ, ຈະມີຂໍ້ຍົກເວັ້ນ (exception) ເກີດຂຶ້ນ.

ຕົວຢ່າງ:


      ' Basic
      FSO.CreateFolder("C:\NewFolder")
    

      # Python
      fs.CreateFolder(r"C:\NewFolder")
    

CreateTextFile

ສ້າງໄຟລ໌ທີ່ລະບຸ ແລະ ສົ່ງຄືນອິນສະແຕນຂອງບໍລິການ TextStream ທີ່ສາມາດໃຊ້ເພື່ອຂຽນລົງໃນໄຟລ໌ໄດ້.

ວິທີການນີ້ຈະສົ່ງຄືນອັອບເຈັກ Null ຖ້າມີຂໍ້ຜິດພາດເກີດຂຶ້ນ.

ໄວຍາກອນ:

svc.CreateTextFile(filename: str, overwrite: bool = True, encoding: str = 'UTF-8'): svc

ພາຣາມິເຕີ:

filename: ຊື່ຂອງໄຟລ໌ທີ່ຈະຖືກສ້າງ.

overwrite: ຄ່າບູລີນ (Boolean) ທີ່ກຳນົດວ່າ filename ສາມາດຖືກຂຽນທັບໄດ້ຫຼືບໍ່ (ຄ່າເລີ່ມຕົ້ນ = True).

encoding: ຊຸດຕົວອັກສອນທີ່ຈະຖືກນຳໃຊ້. ການເຂົ້າລະຫັດເລີ່ມຕົ້ນແມ່ນ "UTF-8".

ຕົວຢ່າງ:

ໃນ Basic

      Dim myFile As Object
      FSO.FileNaming = "SYS"
      Set myFile = FSO.CreateTextFile("C:\Temp\ThisFile.txt", Overwrite := True)
    
ໃນ Python

      fs.FileNaming = "SYS"
      myFile = fs.CreateTextFile(r"C:\Temp\ThisFile.txt", overwrite = True)
    
ໄອຄອນ ບັນທຶກ

ເພື່ອຮຽນຮູ້ເພີ່ມເຕີມກ່ຽວກັບຊື່ຂອງຊຸດຕົວອັກສອນ, ໃຫ້ໄປທີ່ໜ້າ ຊຸດຕົວອັກສອນຂອງ IANA. ຂໍໃຫ້ຮັບຮູ້ວ່າ LibreOffice ບໍ່ໄດ້ຮອງຮັບທຸກຊຸດຕົວອັກສອນທີ່ມີຢູ່.


DeleteFile

ລຶບໜຶ່ງໄຟລ໌ ຫຼື ຫຼາຍກວ່າ. ສົ່ງຄືນ True ຖ້າມີຢ່າງໜ້ອຍໜຶ່ງໄຟລ໌ຖືກລຶບແລ້ວ ຫຼື False ຖ້າມີຂໍ້ຜິດພາດເກີດຂຶ້ນ.

ຂໍ້ຜິດພາດຈະເກີດຂຶ້ນຄືກັນ ຖ້າພາລາມິເຕີ filename ໃຊ້ຕົວອັກສອນຕົວແທນ (wildcard) ແລ້ວບໍ່ກົງກັບໄຟລ໌ໃດໆ.

ໄຟລ໌ທີ່ຈະຖືກລຶບຕ້ອງບໍ່ແມ່ນໄຟລ໌ແບບອ່ານໄດ້ຢ່າງດຽວ (readonly).

ວິທີການນີ້ຈະຢຸດທັນທີຫຼັງຈາກພົບຂໍ້ຜິດພາດ. ວິທີການນີ້ຈະບໍ່ມີການຍ້ອນກັບ (roll back) ຫຼື ຍົກເລີກການປ່ຽນແປງທີ່ເກີດຂຶ້ນກ່ອນທີ່ຈະພົບຂໍ້ຜິດພາດ.

ໄວຍາກອນ:

svc.DeleteFile(filename: str): bool

ພາຣາມິເຕີ:

filename: ມັນສາມາດເປັນ FileName ຫຼື NamePattern ທີ່ລະບຸໜຶ່ງໄຟລ໌ ຫຼື ຫຼາຍກວ່າທີ່ຈະຖືກລຶບ.

ຕົວຢ່າງ:

ໃນຕົວຢ່າງລຸ່ມນີ້ ມີພຽງແຕ່ໄຟລ໌ເທົ່ານັ້ນທີ່ຈະຖືກລຶບ, ໂຟນເດີຍ່ອຍຈະບໍ່ຖືກລຶບ.


      ' Basic
      FSO.DeleteFile("C:\Temp\*.docx")
    

      # Python
      fs.DeleteFile(r"C:\Temp\*.docx")
    

DeleteFolder

ລຶບໜຶ່ງໂຟນເດີ ຫຼື ຫຼາຍກວ່າ. ສົ່ງຄືນ True ຖ້າມີຢ່າງໜ້ອຍໜຶ່ງໂຟນເດີຖືກລຶບແລ້ວ ຫຼື False ຖ້າມີຂໍ້ຜິດພາດເກີດຂຶ້ນ.

ຂໍ້ຜິດພາດຈະເກີດຂຶ້ນຄືກັນ ຖ້າພາລາມິເຕີ foldername ໃຊ້ຕົວອັກສອນຕົວແທນ (wildcard) ແລ້ວບໍ່ກົງກັບໂຟນເດີໃດໆ.

ໂຟນເດີທີ່ຈະຖືກລຶບຕ້ອງບໍ່ແມ່ນແບບອ່ານໄດ້ຢ່າງດຽວ (readonly).

ວິທີການນີ້ຈະຢຸດທັນທີຫຼັງຈາກພົບຂໍ້ຜິດພາດ. ວິທີການນີ້ຈະບໍ່ມີການຍ້ອນກັບ (roll back) ຫຼື ຍົກເລີກການປ່ຽນແປງທີ່ເກີດຂຶ້ນກ່ອນທີ່ຈະພົບຂໍ້ຜິດພາດ.

ໄວຍາກອນ:

svc.DeleteFolder(foldername: str): bool

ພາຣາມິເຕີ:

foldername: ມັນສາມາດເປັນ FolderName ຫຼື NamePattern ທີ່ລະບຸໜຶ່ງໂຟນເດີ ຫຼື ຫຼາຍກວ່າທີ່ຈະຖືກລຶບ.

ຕົວຢ່າງ:

ໃນຕົວຢ່າງລຸ່ມນີ້ ມີພຽງແຕ່ໂຟນເດີ ແລະ ເນື້ອຫາພາຍໃນຂອງພວກມັນເທົ່ານັ້ນທີ່ຈະຖືກລຶບ. ໄຟລ໌ຕ່າງໆໃນໂຟນເດີແມ່ "C:\Temp" ຈະບໍ່ຖືກລຶບ.


      ' Basic
      FSO.DeleteFolder("C:\Temp\*")
    

      # Python
      fs.DeleteFolder(r"C:\Temp\*")
    

ExtensionFolder

ສົ່ງຄືນສາຍອັກຂະລະທີ່ບອກເຖິງໂຟນເດີທີ່ແພັກເກັດສ່ວນເສີມ (extension package) ທີ່ລະບຸໄດ້ຖືກຕິດຕັ້ງໄວ້.

ໄອຄອນ ບັນທຶກ

ຄ່າປັດຈຸບັນຂອງຄຸນສົມບັດ SF_FileSystem.FileNaming ຈະຖືກໃຊ້ເພື່ອ ກຳນົດຮູບແບບຂອງສາຍອັກຂະລະທີ່ສົ່ງຄືນ.


ໄອຄອນ ເຄັດລັບ

ໃຊ້ຄຸນສົມບັດ Extensions ຈາກບໍລິການ Platform ເພື່ອຮັບເອົາອາເຣຂອງສາຍອັກຂະລະທີ່ມີ ID ຂອງສ່ວນເສີມທັງໝົດທີ່ຕິດຕັ້ງໄວ້.


ໄວຍາກອນ:

svc.ExtensionFolder(extension: str): str

ພາຣາມິເຕີ:

extension: ຄ່າສາຍອັກຂະລະທີ່ບອກເຖິງ ID ຂອງສ່ວນເສີມ. ຖ້າສ່ວນເສີມນັ້ນຍັງບໍ່ໄດ້ຖືກຕິດຕັ້ງ, ຈະມີຂໍ້ຍົກເວັ້ນ (exception) ເກີດຂຶ້ນ.

ຕົວຢ່າງ:

ຕົວຢ່າງລຸ່ມນີ້ໃນ Basic ແລະ Python ຈະສົ່ງຄືນໂຟນເດີທີ່ຕິດຕັ້ງສ່ວນເສີມ APSO ໄວ້.


      ' Basic
      sFolder = FSO.ExtensionFolder("apso.python.script.organizer")
      ' file:///home/username/.config/libreoffice/4/user/uno_packages/cache/uno_packages/lu10833wz3u2i.tmp_/apso_1_2_7.oxt
    

      # Python
      sFolder = fs.ExtensionFolder("apso.python.script.organizer")
    

FileExists

ສົ່ງຄືນ True ຖ້າຊື່ໄຟລ໌ທີ່ກຳນົດໃຫ້ຖືກຕ້ອງ ແລະ ມີຢູ່ແລ້ວ, ບໍ່ດັ່ງນັ້ນວິທີການນີ້ຈະສົ່ງຄືນ False.

ຖ້າພາລາມິເຕີ filename ໃນຕົວຈິງແລ້ວແມ່ນຊື່ໂຟນເດີທີ່ມີຢູ່ແລ້ວ, ວິທີການນີ້ຈະສົ່ງຄືນ False.

ໄວຍາກອນ:

svc.FileExists(filename: str): bool

ພາຣາມິເຕີ:

filename: ສາຍອັກຂະລະທີ່ສະແດງເຖິງໄຟລ໌ທີ່ຈະທົດສອບ.

ຕົວຢ່າງ:

ໃນ Basic

      FSO.FileNaming = "SYS"
      If FSO.FileExists("C:\Documents\my_file.odt") Then
          '...
      End If
    
ໃນ Python

      fs.FileNaming = "SYS"
      if fs.FileExists(r"C:\Documents\my_file.odt"):
          # ...
    

Files

ສົ່ງຄືນອາເຣທີ່ເລີ່ມຕົ້ນດ້ວຍສູນ (BASIC) ຫຼື ທັບໂພລ (tuple) ໃນ Python ຂອງໄຟລ໌ຕ່າງໆທີ່ເກັບໄວ້ໃນໂຟນເດີທີ່ກຳນົດໃຫ້. ແຕ່ລະລາຍການໃນອາເຣ ຫຼື ທັບໂພລແມ່ນສາຍອັກຂະລະທີ່ບັນຈຸເສັ້ນທາງເຕັມ ແລະ ຊື່ໄຟລ໌.

ຖ້າຂໍ້ໂຕ້ແຍ້ງ foldername ລະບຸໂຟນເດີທີ່ຍັງບໍ່ມີຢູ່, ຈະມີຂໍ້ຍົກເວັ້ນ (exception) ເກີດຂຶ້ນ.

ລາຍຊື່ຜົນໄດ້ຮັບອາດຈະຖືກຕອງດ້ວຍຕົວແທນ (wildcards).

ໄວຍາກອນ:

svc.Files(foldername: str, filter: str = '', includesubfolders: bool = False): str[0..*]

ພາຣາມິເຕີ:

foldername: ສາຍອັກຂະລະທີ່ສະແດງເຖິງໂຟນເດີ. ໂຟນເດີນັ້ນຕ້ອງມີຢູ່ແລ້ວ. ຂໍ້ໂຕ້ແຍ້ງນີ້ຕ້ອງບໍ່ລະບຸເປັນໄຟລ໌.

filter: ສາຍອັກຂະລະທີ່ບັນຈຸຕົວແທນ ("?" ແລະ "*") ເຊິ່ງຈະຖືກນຳໃຊ້ກັບລາຍຊື່ໄຟລ໌ທີ່ໄດ້ຮັບ (ຄ່າເລີ່ມຕົ້ນ = "").

includesubfolders: ຕັ້ງຂໍ້ໂຕ້ແຍ້ງນີ້ເປັນ True ເພື່ອລວມເອົາເນື້ອຫາໃນໂຟນເດີຍ່ອຍນຳ (ຄ່າເລີ່ມຕົ້ນ = False).

ຕົວຢ່າງ:

ໃນ Basic

      Dim filesList As Variant, file As String
      FSO.FileNaming = "SYS"
      ' ສົ່ງຄືນໄຟລ໌ທັງໝົດທີ່ກົງກັບຕົວຕອງ "*.txt", ລວມທັງໄຟລ໌ໃນໂຟນເດີຍ່ອຍ
      filesList = FSO.Files("/home/user/", "*.txt", IncludeSubfolders := True)
      For Each file In filesList
          ' ...
      Next file
    
ໃນ Python

      fs.FileNaming = "SYS"
      filesList = fs.Files("/home/user/", "*.txt", includesubfolders = True)
      for file in fileList:
          # ...
    

FolderExists

ສົ່ງຄືນ True ຖ້າ FolderName ທີ່ລະບຸຖືກຕ້ອງ ແລະ ມີຢູ່ແລ້ວ, ບໍ່ດັ່ງນັ້ນວິທີການນີ້ຈະສົ່ງຄືນ False.

ຖ້າພາລາມິເຕີ foldername ໃນຕົວຈິງແລ້ວແມ່ນຊື່ໄຟລ໌ທີ່ມີຢູ່ແລ້ວ, ວິທີການນີ້ຈະສົ່ງຄືນ False.

ໄວຍາກອນ:

svc.FolderExists(foldername: str): bool

ພາຣາມິເຕີ:

foldername: ສາຍອັກຂະລະທີ່ສະແດງເຖິງໂຟນເດີທີ່ຈະທົດສອບ.

ຕົວຢ່າງ:

ໃນ Basic

      FSO.FileNaming = "SYS"
      If FSO.FolderExists("C:\Documents\Thesis") Then
          '...
      End If
    
ໃນ Python

      fs.FileNaming = "SYS"
      if fs.FolderExists(r"C:\Documents\Thesis")
          # ...
    

GetBaseName

ສົ່ງຄືນ BaseName (ເທົ່າກັບສ່ວນປະກອບສຸດທ້າຍ) ຂອງຊື່ໂຟນເດີ ຫຼື ໄຟລ໌, ໂດຍບໍ່ລວມນາມສະກຸນ.

ວິທີການນີ້ບໍ່ໄດ້ກວດສອບວ່າໄຟລ໌ ຫຼື ໂຟນເດີທີ່ລະບຸມີຢູ່ແລ້ວບໍ່.

ໄວຍາກອນ:

svc.GetBaseName(filename: str): str

ພາຣາມິເຕີ:

filename: ສາຍອັກຂະລະທີ່ສະແດງເຖິງຊື່ໄຟລ໌ ແລະ ເສັ້ນທາງຂອງມັນ.

ຕົວຢ່າງ:

ໃນຕົວຢ່າງລຸ່ມນີ້, ການເອີ້ນໃຊ້ວິທີການ GetBaseName ຄັ້ງທຳອິດແມ່ນກົງກັບໂຟນເດີ, ດັ່ງນັ້ນຟັງຊັນຈຶ່ງສົ່ງຄືນສ່ວນປະກອບສຸດທ້າຍຂອງເສັ້ນທາງ. ການເອີ້ນໃຊ້ຄັ້ງທີສອງແມ່ນໄດ້ຮັບຊື່ໄຟລ໌ເປັນຂໍ້ມູນຂາເຂົ້າ, ດັ່ງນັ້ນຊື່ຂອງໄຟລ໌ຈຶ່ງຖືກສົ່ງຄືນໂດຍບໍ່ລວມນາມສະກຸນ.

ໃນ Basic

      MsgBox FSO.GetBaseName("/home/user/Documents") ' "Documents"
      MsgBox FSO.GetBaseName("/home/user/Documents/my_file.ods") ' "my_file"
    
ໃນ Python

      bas = CreateScriptService("Basic")
      bas.MsgBox(fs.GetBaseName("/home/user/Documents")) # "Documents"
      bas.MsgBox(fs.GetBaseName("/home/user/Documents/my_file.ods")) # "my_file"
    

GetExtension

ສົ່ງຄືນສ່ວນນາມສະກຸນຂອງຊື່ໄຟລ໌ ຫຼື ໂຟນເດີໂດຍບໍ່ລວມຕົວອັກສອນຈ້ຳ ".".

ວິທີການນີ້ບໍ່ໄດ້ກວດສອບການມີຢູ່ຂອງໄຟລ໌ ຫຼື ໂຟນເດີທີ່ລະບຸ.

ຖ້າວິທີການນີ້ຖືກໃຊ້ກັບຊື່ໂຟນເດີ ຫຼື ໄຟລ໌ທີ່ບໍ່ມີນາມສະກຸນ, ມັນຈະສົ່ງຄືນສາຍອັກຂະລະທີ່ຫວ່າງເປົ່າ.

ໄວຍາກອນ:

svc.GetExtension(filename: str): str

ພາຣາມິເຕີ:

filename: ສາຍອັກຂະລະທີ່ສະແດງເຖິງຊື່ໄຟລ໌ ແລະ ເສັ້ນທາງຂອງມັນ.

ຕົວຢ່າງ:


      ' Basic
      ext = FSO.GetExtension("C:\Windows\Notepad.exe")  ' "exe"
    

      # Python
      ext = fs.GetExtension(r"C:\Windows\Notepad.exe")  # "exe"
    

GetFileLen

ຟັງຊັນ FileLen ທີ່ມີມາໃຫ້ໃນ Basic ຈະສົ່ງຄືນຈຳນວນໄບຕ໌ (bytes) ໃນໄຟລ໌ເປັນຄ່າ Long, ເຊິ່ງຮອງຮັບໄດ້ສູງສຸດ 2GB.

ວິທີການ GetFileLen ສາມາດຈັດການກັບໄຟລ໌ທີ່ມີຂະໜາດໃຫຍ່ກວ່ານັ້ນໄດ້ຫຼາຍ ໂດຍການສົ່ງຄືນເປັນຄ່າ Currency.

ໄວຍາກອນ:

svc.GetFileLen(filename: str): num

ພາຣາມິເຕີ:

filename: ສາຍອັກຂະລະທີ່ສະແດງເຖິງໄຟລ໌ທີ່ມີຢູ່ແລ້ວ.

ຕົວຢ່າງ:

ໃນ Basic

      Dim fLen As Currency
      FSO.FileNaming = "SYS"
      fLen = FSO.GetFileLen("C:\pagefile.sys")
    
ໃນ Python

      fs.FileNaming = "SYS"
      fLen = fs.GetFileLen(r"C:\pagefile.sys")
    

GetFileModified

ສົ່ງຄືນວັນທີທີ່ມີການແກ້ໄຂຄັ້ງຫຼ້າສຸດຂອງໄຟລ໌ທີ່ກຳນົດໃຫ້.

ໄວຍາກອນ:

svc.GetFileModified(filename: str): datetime

ພາຣາມິເຕີ:

filename: ສາຍອັກຂະລະທີ່ສະແດງເຖິງໄຟລ໌ທີ່ມີຢູ່ແລ້ວ.

ຕົວຢ່າງ:

ໃນ Basic

      Dim aDate As Date
      FSO.FileNaming = "SYS"
      aDate = FSO.GetFileModified("C:\Documents\my_file.odt")
    
ໃນ Python

      fs.FileNaming = "SYS"
      aDate = FSO.GetFileModified(r"C:\Documents\my_file.odt")
    

GetName

ສົ່ງຄືນສ່ວນປະກອບສຸດທ້າຍຂອງຊື່ໄຟລ໌ ຫຼື ໂຟນເດີໃນຮູບແບບຂອງລະບົບປະຕິບັດການຕົ້ນສະບັບ.

ວິທີການນີ້ບໍ່ໄດ້ກວດສອບວ່າໄຟລ໌ ຫຼື ໂຟນເດີທີ່ລະບຸມີຢູ່ແລ້ວບໍ່.

ໄວຍາກອນ:

svc.GetName(filename: str): str

ພາຣາມິເຕີ:

filename: ສາຍອັກຂະລະທີ່ສະແດງເຖິງຊື່ໄຟລ໌ ແລະ ເສັ້ນທາງຂອງມັນ.

ຕົວຢ່າງ:


      ' Basic
      a = FSO.GetName("C:\Windows\Notepad.exe")  ' Notepad.exe
    

      # Python
      a = fs.GetName(r"C:\Windows\Notepad.exe")  # Notepad.exe
    

GetParentFolderName

ສົ່ງຄືນສາຍອັກຂະລະທີ່ບັນຈຸຊື່ຂອງໂຟນເດີແມ່ (parent folder) ຂອງໄຟລ໌ ຫຼື ຊື່ໂຟນເດີທີ່ລະບຸໄວ້.

ວິທີການນີ້ບໍ່ໄດ້ກວດສອບວ່າໄຟລ໌ ຫຼື ໂຟນເດີທີ່ລະບຸມີຢູ່ແລ້ວບໍ່.

ໄວຍາກອນ:

svc.GetParentFolderName(filename: str): str

ພາຣາມິເຕີ:

filename: ສາຍອັກຂະລະທີ່ມີຊື່ໄຟລ໌ ຫຼື ໂຟນເດີທີ່ຈະນຳມາວິເຄາະ.

ຕົວຢ່າງ:


      ' Basic
      a = FSO.GetParentFolderName("C:\Windows\Notepad.exe")  ' C:\Windows\
    

      # Python
      a = fs.GetParentFolderName(r"C:\Windows\Notepad.exe")  # C:\Windows\
    

GetTempName

ສົ່ງຄືນຊື່ໄຟລ໌ຊົ່ວຄາວທີ່ຖືກສຸ່ມສ້າງຂຶ້ນ ເຊິ່ງມີປະໂຫຍດສຳລັບການດຳເນີນການທີ່ຕ້ອງການໄຟລ໌ຊົ່ວຄາວ.

ໂດຍຄ່າເລີ່ມຕົ້ນ, ຊື່ໄຟລ໌ທີ່ສົ່ງຄືນມາຈະບໍ່ມີນາມສະກຸນ. ໃຫ້ໃຊ້ພາລາມິເຕີ extension ເພື່ອລະບຸນາມສະກຸນຂອງຊື່ໄຟລ໌ທີ່ຈະຖືກສ້າງ.

ສ່ວນຂອງໂຟນເດີໃນສາຍອັກຂະລະທີ່ສົ່ງຄືນມານັ້ນແມ່ນໂຟນເດີຊົ່ວຄາວຂອງລະບົບ.

ວິທີການນີ້ບໍ່ໄດ້ສ້າງໄຟລ໌ຊົ່ວຄາວໃຫ້ແທ້ໆ.

ໄວຍາກອນ:

svc.GetTempName(extension: str): str

ພາຣາມິເຕີ:

extension: ນາມສະກຸນຂອງຊື່ໄຟລ໌ຊົ່ວຄາວ (ຄ່າເລີ່ມຕົ້ນ = "").

ຕົວຢ່າງ:

ໃນ Basic

      Dim fName As String
      FSO.FileNaming = "SYS"
      fName = FSO.GetTempName(Extension := "txt")
      ' "/tmp/SF_574068.txt"
    
ໃນ Python

      fs.FileNaming = "SYS"
      fName = FSO.GetTempName(extension = "txt")
      # "/tmp/SF_574068.txt"
    

HashFile

ຟັງຊັນ Hash ຖືກນຳໃຊ້ໂດຍອັນກໍຣິທຶມການເຂົ້າລະຫັດບາງຢ່າງ, ໃນລາຍເຊັນດິຈິຕອນ, ລະຫັດຢືນຢັນຂໍ້ຄວາມ, ການກວດສອບການສໍ້ໂກງ, ລາຍນິ້ວມື, ຜົນລວມການກວດສອບ (ການກວດສອບຄວາມສົມບູນຂອງຂໍ້ຄວາມ), ຕາຕະລາງ hash, ການເກັບຮັກສາລະຫັດຜ່ານ ແລະ ອື່ນໆອີກຫຼາຍຢ່າງ.

ວິທີການ HashFile ສົ່ງຄືນຜົນໄດ້ຮັບຂອງຟັງຊັນ hash ທີ່ຖືກນຳໃຊ້ກັບໄຟລ໌ທີ່ກຳນົດໃຫ້ ໂດຍໃຊ້ອັນກໍຣິທຶມທີ່ລະບຸໄວ້. ຄ່າທີ່ສົ່ງຄືນແມ່ນສາຍອັກຂະລະຂອງເລກຖານສິບຫົກ (hexadecimal) ທີ່ເປັນຕົວອັກສອນນ້ອຍ.

ອັນກໍຣິທຶມ hash ທີ່ຮອງຮັບຄື: MD5, SHA1, SHA224, SHA256, SHA384 ແລະ SHA512.

ໄວຍາກອນ:

svc.HashFile(filename: str, algorithm: str): str

ພາຣາມິເຕີ:

filename: ສາຍອັກຂະລະທີ່ສະແດງເຖິງໄຟລ໌ທີ່ມີຢູ່ແລ້ວ.

algorithm: ໜຶ່ງໃນອັນກໍຣິທຶມທີ່ຮອງຮັບ.

ຕົວຢ່າງ:


      ' Basic
      sHash = FSO.HashFile("C:\pagefile.sys", "MD5")
    

      # Python
      sHash = FSO.HashFile(r"C:\pagefile.sys", "MD5")
    

MoveFile

ຍ້າຍໜຶ່ງໄຟລ໌ ຫຼື ຫຼາຍກວ່າຈາກສະຖານທີ່ໜຶ່ງໄປຍັງອີກບ່ອນໜຶ່ງ. ສົ່ງຄືນ True ຖ້າມີຢ່າງໜ້ອຍໜຶ່ງໄຟລ໌ຖືກຍ້າຍແລ້ວ ຫຼື False ຖ້າມີຂໍ້ຜິດພາດເກີດຂຶ້ນ.

ຂໍ້ຜິດພາດຈະເກີດຂຶ້ນຄືກັນ ຖ້າພາລາມິເຕີ source ໃຊ້ຕົວອັກສອນຕົວແທນ (wildcard) ແລ້ວບໍ່ກົງກັບໄຟລ໌ໃດໆ.

ວິທີການນີ້ຈະຢຸດທັນທີຫຼັງຈາກພົບຂໍ້ຜິດພາດ. ວິທີການນີ້ຈະບໍ່ມີການຍ້ອນກັບ (roll back) ຫຼື ຍົກເລີກການປ່ຽນແປງທີ່ເກີດຂຶ້ນກ່ອນທີ່ຈະພົບຂໍ້ຜິດພາດ.

ໄວຍາກອນ:

svc.MoveFile(source: str, destination: str): bool

ພາຣາມິເຕີ:

source: ມັນສາມາດເປັນ FileName ຫຼື NamePattern ເພື່ອລະບຸໄຟລ໌ໜຶ່ງ ຫຼື ຫຼາຍກວ່າທີ່ຈະຍ້າຍ.

destination: ຖ້າ source ແມ່ນ FileName ພາລາມິເຕີນີ້ຈະບອກເຖິງເສັ້ນທາງ ແລະ ຊື່ໄຟລ໌ໃໝ່ຂອງໄຟລ໌ທີ່ຖືກຍ້າຍ.

ຖ້າການຍ້າຍນັ້ນກ່ຽວຂ້ອງກັບຫຼາຍໄຟລ໌, destination ຕ້ອງແມ່ນຊື່ໂຟນເດີ. ຖ້າມັນຍັງບໍ່ມີຢູ່, ມັນຈະຖືກສ້າງຂຶ້ນ.

ຖ້າ source ແລະ destination ມີໂຟນເດີແມ່ອັນດຽວກັນ, ວິທີການນີ້ຈະເຮັດການປ່ຽນຊື່ source.

ບໍ່ອະນຸຍາດໃຫ້ໃຊ້ຕົວອັກສອນຕົວແທນ (wildcard) ໃນ destination.

ຕົວຢ່າງ:

ໃນຕົວຢ່າງຕໍ່ໄປນີ້ ມີພຽງແຕ່ໄຟລ໌ເທົ່ານັ້ນທີ່ຈະຖືກຍ້າຍ, ໂຟນເດີຍ່ອຍຈະບໍ່ຖືກຍ້າຍ.


      ' Basic
      FSO.MoveFile("C:\Temp1\*.*", "C:\Temp2")
    

      # Python
      fs.MoveFile(r"C:\Temp1\*.*", r"C:\Temp2")
    

MoveFolder

ຍ້າຍໜຶ່ງໂຟນເດີ ຫຼື ຫຼາຍກວ່າຈາກສະຖານທີ່ໜຶ່ງໄປຍັງອີກບ່ອນໜຶ່ງ. ສົ່ງຄືນ True ຖ້າມີຢ່າງໜ້ອຍໜຶ່ງໂຟນເດີຖືກຍ້າຍແລ້ວ ຫຼື False ຖ້າມີຂໍ້ຜິດພາດເກີດຂຶ້ນ.

ຂໍ້ຜິດພາດຈະເກີດຂຶ້ນຄືກັນ ຖ້າພາລາມິເຕີ source ໃຊ້ຕົວອັກສອນຕົວແທນ (wildcard) ແລ້ວບໍ່ກົງກັບໂຟນເດີໃດໆ.

ວິທີການນີ້ຈະຢຸດທັນທີຫຼັງຈາກພົບຂໍ້ຜິດພາດ. ວິທີການນີ້ຈະບໍ່ມີການຍ້ອນກັບ (roll back) ຫຼື ຍົກເລີກການປ່ຽນແປງທີ່ເກີດຂຶ້ນກ່ອນທີ່ຈະພົບຂໍ້ຜິດພາດ.

ໄວຍາກອນ:

svc.MoveFolder(source: str, destination: str): bool

ພາຣາມິເຕີ:

source: ມັນສາມາດເປັນ FolderName ຫຼື NamePattern ເພື່ອລະບຸໂຟນເດີໜຶ່ງ ຫຼື ຫຼາຍກວ່າທີ່ຈະຍ້າຍ.

destination: ຖ້າການຍ້າຍນັ້ນກ່ຽວຂ້ອງກັບໂຟນເດີດຽວ, destination ແມ່ນຊື່ ແລະ ເສັ້ນທາງຂອງໂຟນເດີທີ່ຖືກຍ້າຍ ແລະ ມັນຕ້ອງບໍ່ມີຢູ່ກ່ອນ.

ຖ້າມີການຍ້າຍຫຼາຍໂຟນເດີ, destination ຈະລະບຸບ່ອນທີ່ໂຟນເດີຕ່າງໆໃນ source ຈະຖືກຍ້າຍເຂົ້າໄປ. ຖ້າ destination ຍັງບໍ່ມີຢູ່, ມັນຈະຖືກສ້າງຂຶ້ນ.

ບໍ່ອະນຸຍາດໃຫ້ໃຊ້ຕົວອັກສອນຕົວແທນ (wildcard) ໃນ destination.

ຕົວຢ່າງ:


      ' Basic
      FSO.MoveFolder("C:\Temp1\*", "C:\Temp2")
    

      # Python
      fs.MoveFolder(r"C:\Temp1\*", r"C:\Temp2")
    

Normalize

ສົ່ງຄືນສາຍອັກຂະລະທີ່ບັນຈຸຊື່ເສັ້ນທາງທີ່ຖືກປັບໃຫ້ເປັນມາດຕະຖານ (normalized) ໂດຍການຮວບຮວມຕົວແຍກທີ່ເກີນຄວາມຈຳເປັນ ແລະ ການອ້າງອີງລະດັບທີ່ສູງກວ່າ.

ຕົວຢ່າງເຊັ່ນ: ຊື່ເສັ້ນທາງ A//B, A/B/, A/./B ແລະ A/foo/../B ທັງໝົດຈະຖືກປັບໃຫ້ເປັນ A/B.

ໃນ Windows, ເຄື່ອງໝາຍທັບໄປທາງໜ້າ "/" ຈະຖືກປ່ຽນເປັນເຄື່ອງໝາຍທັບໄປທາງຫຼັງ "\".

ໄອຄອນ ບັນທຶກ

ຄ່າປັດຈຸບັນຂອງຄຸນສົມບັດ SF_FileSystem.FileNaming ຈະຖືກໃຊ້ເພື່ອ ກຳນົດຮູບແບບຂອງຂໍ້ໂຕ້ແຍ້ງ filename ລວມທັງຮູບແບບຂອງສາຍອັກຂະລະທີ່ສົ່ງຄືນ.


ໄວຍາກອນ:

svc.Normalize(filename: str): str

ພາຣາມິເຕີ:

filename: ສາຍອັກຂະລະທີ່ສະແດງເຖິງຊື່ເສັ້ນທາງທີ່ຖືກຕ້ອງ. ໄຟລ໌ ຫຼື ໄດເຣັກໂທຣີທີ່ສະແດງໂດຍຂໍ້ໂຕ້ແຍ້ງນີ້ອາດຈະຍັງບໍ່ມີຢູ່ກໍໄດ້.

ຕົວຢ່າງ:

ໃນ Basic

    FSO.FileNaming = "URL"
    ' file:///home/user/Documents
    normPath = FSO.Normalize("file:///home/user/Documents/")
    ' file:///home/user/Documents
    normPath = FSO.Normalize("file:///home//user//Documents/")
    ' file:///home/user
    normPath = FSO.Normalize("file:///home//user//Documents/../")
  
ໃນ Python

    fs.FileNaming = "URL"
    normPath = fs.Normalize("file:///home/user/Documents/")
    normPath = fs.Normalize("file:///home//user//Documents/")
    normPath = fs.Normalize("file:///home//user//Documents/../")
  

OpenTextFile

ເປີດໄຟລ໌ ແລະ ສົ່ງຄືນອັອບເຈັກ TextStream ທີ່ສາມາດໃຊ້ເພື່ອອ່ານຈາກ, ຂຽນລົງໃນ, ຫຼື ຂຽນຕໍ່ທ້າຍໄຟລ໌ໄດ້.

ຂໍໃຫ້ສັງເກດວ່າວິທີການນີ້ບໍ່ໄດ້ກວດສອບວ່າໄຟລ໌ທີ່ກຳນົດໃຫ້ແມ່ນໄຟລ໌ຂໍ້ຄວາມແທ້ໆບໍ່.

ວິທີການນີ້ຈະສົ່ງຄືນອັອບເຈັກ Null (ໃນ Basic) ຫຼື None (ໃນ Python) ຖ້າມີຂໍ້ຜິດພາດເກີດຂຶ້ນ.

ໄວຍາກອນ:

svc.OpenTextFile(filename: str, iomode: int = 1, create: bool = False, encoding: str = 'UTF-8'): svc

ພາຣາມິເຕີ:

filename: ລະບຸໄຟລ໌ທີ່ຈະເປີດ.

iomode: ບອກເຖິງໂໝດການນຳເຂົ້າ/ສົ່ງອອກ (input/output). ມັນສາມາດເປັນໜຶ່ງໃນສາມຄ່າຄົງທີ່: svc.ForReading (ຄ່າເລີ່ມຕົ້ນ), svc.ForWriting, ຫຼື svc.ForAppending.

create: ຄ່າບູລີນ (Boolean) ທີ່ບອກວ່າຈະໃຫ້ສ້າງໄຟລ໌ໃໝ່ໄດ້ຫຼືບໍ່ ຖ້າ filename ທີ່ລະບຸຍັງບໍ່ມີຢູ່:

encoding: ຊຸດຕົວອັກສອນທີ່ຈະຖືກນຳໃຊ້. ການເຂົ້າລະຫັດເລີ່ມຕົ້ນແມ່ນ "UTF-8".

ຕົວຢ່າງ:

ໃນ Basic

      Dim myFile As Object
      FSO.FileNaming = "SYS"
      Set myFile = FSO.OpenTextFile("C:\Temp\ThisFile.txt", FSO.ForReading)
      If Not IsNull(myFile) Then
          ' ...
      End If
    
ໃນ Python

      fs.FileNaming = "SYS"
      myFile = fs.OpenTextFile(r"C:\Temp\ThisFile.txt", fs.ForReading)
      if myFile is not None:
          # ...
    

PickFile

ເປີດປ່ອງຢ້ຽມໂຕ້ຕອບເພື່ອເປີດ ຫຼື ບັນທຶກໄຟລ໌.

ຖ້າຕັ້ງໂໝດ SAVE ແລະ ໄຟລ໌ທີ່ເລືອກມີຢູ່ແລ້ວ, ຂໍ້ຄວາມແຈ້ງເຕືອນຈະຖືກສະແດງ.

ໄວຍາກອນ:

svc.PickFile(defaultfile: str ='', mode: str = 'OPEN', filter: str = ''): str

ພາຣາມິເຕີ:

defaultfile: ຂໍ້ໂຕ້ແຍ້ງນີ້ແມ່ນສາຍອັກຂະລະທີ່ປະກອບດ້ວຍຊື່ໂຟນເດີ ແລະ ຊື່ໄຟລ໌:

mode: ຄ່າສາຍອັກຂະລະທີ່ສາມາດເປັນໄດ້ທັງ "OPEN" (ສຳລັບໄຟລ໌ຂາເຂົ້າ) ຫຼື "SAVE" (ສຳລັບໄຟລ໌ຂາອອກ). ຄ່າເລີ່ມຕົ້ນແມ່ນ "OPEN".

filter: ນາມສະກຸນຂອງໄຟລ໌ທີ່ຈະຖືກສະແດງເມື່ອປ່ອງຢ້ຽມໂຕ້ຕອບເປີດຂຶ້ນ (ຄ່າເລີ່ມຕົ້ນ = ບໍ່ມີຕົວຕອງ).

ຕົວຢ່າງ:

ຕົວຢ່າງລຸ່ມນີ້ຈະເປີດປ່ອງຢ້ຽມເລືອກໄຟລ໌ໂດຍໃຊ້ຕົວຕອງ "txt".


      ' Basic
      aFile = FSO.PickFile("C:\Documents", "OPEN", "txt")
    

      # Python
      aFile = fs.PickFile(r"C:\Documents", "OPEN", "txt")
    

PickFolder

ເປີດປ່ອງຢ້ຽມໂຕ້ຕອບເພື່ອເລືອກໂຟນເດີ.

ໄວຍາກອນ:

svc.PickFolder(defaultfolder: str = '', freetext: str = ''): str

ພາຣາມິເຕີ:

defaultfolder: ສາຍອັກຂະລະທີ່ບັນຈຸຊື່ໂຟນເດີທີ່ຈະຖືກສະແດງເມື່ອປ່ອງຢ້ຽມໂຕ້ຕອບເປີດຂຶ້ນ (ຄ່າເລີ່ມຕົ້ນ = ໂຟນເດີຫຼ້າສຸດທີ່ຖືກເລືອກ).

freetext: ຂໍ້ຄວາມທີ່ຈະສະແດງໃນປ່ອງຢ້ຽມໂຕ້ຕອບ (ຄ່າເລີ່ມຕົ້ນ = "").

ຕົວຢ່າງ:


      ' Basic
      aFolder = FSO.PickFolder("C:\Documents", "ເລືອກໂຟນເດີ ຫຼື ກົດ ຍົກເລີກ")
    

      # Python
      aFolder = fs.PickFolder(r"C:\Documents", "ເລືອກໂຟນເດີ ຫຼື ກົດ ຍົກເລີກ")
    

SubFolders

ສົ່ງຄືນອາເຣທີ່ເລີ່ມຕົ້ນດ້ວຍສູນຂອງສາຍອັກຂະລະທີ່ກົງກັບໂຟນເດີຕ່າງໆທີ່ເກັບໄວ້ໃນ foldername ທີ່ກຳນົດໃຫ້.

ລາຍຊື່ນັ້ນອາດຈະຖືກຕອງດ້ວຍຕົວແທນ (wildcards).

ໄວຍາກອນ:

svc.SubFolders(foldername: str, filter: str = '', includesubfolders: bool = False): str[0..*]

ພາຣາມິເຕີ:

foldername: ສາຍອັກຂະລະທີ່ສະແດງເຖິງໂຟນເດີ. ໂຟນເດີນັ້ນຕ້ອງມີຢູ່ແລ້ວ. foldername ຕ້ອງບໍ່ລະບຸເປັນໄຟລ໌.

filter: ສາຍອັກຂະລະທີ່ບັນຈຸຕົວແທນ ("?" ແລະ "*") ເຊິ່ງຈະຖືກນຳໃຊ້ກັບລາຍຊື່ໂຟນເດີທີ່ໄດ້ຮັບ (ຄ່າເລີ່ມຕົ້ນ = "").

includesubfolders: ຕັ້ງຂໍ້ໂຕ້ແຍ້ງນີ້ເປັນ True ເພື່ອລວມເອົາເນື້ອຫາໃນໂຟນເດີຍ່ອຍນຳ (ຄ່າເລີ່ມຕົ້ນ = False).

ຕົວຢ່າງ:

ໃນ Basic

      Dim folderList As Variant, folder As String
      FSO.FileNaming = "SYS"
      folderList = FSO.SubFolders("/home/user/")
      For Each folder In folderList
          ' ...
      Next folder
    
ໃນ Python

      fs.FileNaming = "SYS"
      folderList = fs.SubFolders("/home/user/")
      for folder in folderList:
          # ...
    
ໄອຄອນ ຄຳເຕືອນ

ຣູທີນ ຫຼື ຕົວລະບຸ Basic ຂອງ ScriptForge ທັງໝົດທີ່ຂຶ້ນຕົ້ນດ້ວຍເຄື່ອງໝາຍຂີດກ້ອງ "_" ແມ່ນສະຫງວນໄວ້ສຳລັບໃຊ້ພາຍໃນ. ພວກມັນບໍ່ໄດ້ມີໄວ້ໃຫ້ໃຊ້ໃນມາໂຄຣ Basic ຫຼື ສະຄຣິບ Python.


ກະລຸນາສະໜັບສະໜູນພວກເຮົາ!

ກະລຸນາສະໜັບສະໜູນພວກເຮົາ!