A mkDir Read Only mappákat hoz létre

A mkDir Read Only mappákat hoz létre
2018-09-07T13:33:35+02:00
2018-09-10T20:39:29+02:00
2022-12-05T14:00:39+01:00
kisleki
Sziasztok!

A minap belefutottam egy erdekes hibaba, megpedig abba, hogy a mkDir parancs a konyvtarakat Read Only attributummal hozza letre, igy a kod tokeletesen lefut, amennyiben a mappak nem leteznek, de amint a mappa mar letezik, a kod nem kepes letrehozni a tobbi mappat masodik futaskor, majd 75-os hibaba fut.

Probaltam a dolgot manualisan megvaltoztatni, de a kod lefutasa utan ugyancsak Read Only lesz az attributum.

Probaltam a setAttr kodot, ugyancsak nem mukodik.

Private Sub CommandButton2_Click() 'Az alap koncepcio, hogy a filet, amivel dolgozom, eloszor elmenti az alap file neven, 'hogy a valtoztatasok is mindig bekeruljenek az eredeti verzioba, 'majd elmenti az ujonnan kitoltott adatokkal a szukseges lokaciora, melyet a gepsor, 'azon belul a gepszam hataroz meg almappakent Dim strLine As String Dim strMachine As String Dim strYear As String strYear = Year(Date) strLine = ThisWorkbook.Sheets("Form").Range("B36") 'Ebben az esetben a gepsor neve GA31 strMachine = ThisWorkbook.Sheets("Form").Range("B37") 'Ebben az esetben a gepszam MEE-4225 'A kivant lokacionak a kovetkezonek kellene lennie: Aktualis_hely/Ev/Gepsor/gepszam/dokumentum.xlsm 'Ez a kod elsore tokeletesen letrehozza a megadott evszam nevevel az almappat, masodjara inditva mar hibat ir, mert nem fer hozza a lokaciohoz 'Az attribute mindig Read-Onlyra valt, ha manualisan valtoztatom akkor is If Len(Dir(ThisWorkbook.Path & "" & strYear)) = 0 Then MkDir ThisWorkbook.Path & "" & strYear End If If Len(Dir(ThisWorkbook.Path & "" & strYear & "" & strLine)) = 0 Then MkDir ThisWorkbook.Path & "" & strYear & "" & strLine End If If Len(Dir(ThisWorkbook.Path & "" & strYear & "" & strLine & "" & strMachine)) = 0 Then MkDir ThisWorkbook.Path & "" & strYear & "" & strLine & "" & strMachine End If 'ThisWorkbook.SaveAs ThisWorkbook.Path & "" & strYear & "" & strLine & "" & strMachine & "\Finsihed Inspection.xlsm" 'strRootLocation = ThisWorkbook.Path 'strNewFileName = "Finished Inspection.xlsm" 'strNewLocation = ThisWorkbook.Path & "" & strYear & "" & strLine & "" & strMachine 'Workbooks.Open "U:\Calibration\Inspection\Digital Taster.xlsm" End Sub
Mutasd a teljes hozzászólást!
Mi van akkor, ha a Dir hívásba írsz még egy ", vbDirectory" attribútumot?
A könyvtár read-only-ságát egyrészt lehet, hogy félreérted: pipát látsz, vagy négyzetet? Másrészt a Windows-t elvileg nem igazán hatják meg a csak-olvashatónak jelölt könyvtárak.
Mutasd a teljes hozzászólást!

  • Szia, a probléma ott lesz, hogy a könyvtáradban létrehozol még egy alkönyvtárat, így az már nem lesz üres. Nem üres könyvtárat pedig nem lehet törölni.

    Üdv.
    Zoli
    Mutasd a teljes hozzászólást!
  • Mi van akkor, ha a Dir hívásba írsz még egy ", vbDirectory" attribútumot?
    A könyvtár read-only-ságát egyrészt lehet, hogy félreérted: pipát látsz, vagy négyzetet? Másrészt a Windows-t elvileg nem igazán hatják meg a csak-olvashatónak jelölt könyvtárak.
    Mutasd a teljes hozzászólást!
  • Kedves zka67!

    Nem kivanom torolni, mindosszesen az ellenorzest kellene, hogy vegrehajtsa, majd amennyiben megvan a mappa csak mentse bele a filet.

    Vagy az IF reszen valamit elhibaztam, es nem igy kell megcsinalni?
    Elviekben, ha az ellenorzes lefut, akkor nem is kellene, hogy barmihez is nyuljon.

    Vagy egyszeruen csak rosszul hasznalom ezt az ellenorzos dolgot?
    Nem vagyok meg egy nagy VBA virtuoz, ha valami rossz, szivesen hallgatom.

    Udv

    Peti
    Mutasd a teljes hozzászólást!
  • Kedves tevemadar!

    Probaltam mar a poszt megnyitasa elott, az eredmeny ugyanaz...

    Negyzetes, amire azt mondja, hogy csak a fileokat erinti.

    Udv 

    Peti
    Mutasd a teljes hozzászólást!
  • Kedves tevemadar!

    A megoldas valoban a vbDirectory volt...
    De nem ertem, hiszen elotte mar probaltam es akkor megbukott. Valoszinuleg a szintaktikai hiba okozhatta, esetleg az javitott a dolgon meg, hogy a helyeket elkezdtem valtozokban tarolni. Nem tudom. Minden esetre a pontot neked szavazom, hiszen valoban az volt a megoldas. Koszon a segitseget!

    Udv Peti
    Mutasd a teljes hozzászólást!
Tetszett amit olvastál? Szeretnél a jövőben is értesülni a hasonló érdekességekről?
abcd