File system I9660 e Joliet

Sono file system per CD e DVD.

File system I9660

  • lunghezza caratteri cartella: 8
  • lunghezza caratteri file: 8+3
  • massimo 8 livelli di cartelle

File system Joliet

  • lunghezza caratteri (file o cartella) 107
  • nessun limite ai livelli di cartelle

Per maggiori informazioni:
http://www.laserburner.it/manuale/formati_iso_joliet.php

Di seguito uno scripts VBS che analizza solo la lunghezza delle cartelle e dei file (compresa l’estensione). Analizza 107 caratteri secondo le specifiche del formato Joilett.

'Cartella da analizzare 
StartFolder = "C:\Users\utente\Documenti\Esempio"

'Dimesione massima path compreso il nome del file, escluso la cartella StartFolder
MaxCharacters = 107

'Conteggio del numero delle cartelle e numero dei file analizzati
CounterObject = 0

'Conteggio del numero delle cartelle e numero dei file se superano la dimesione massima di caratteri (MaxCharacters)
CounterObjectExceed =0

Set objFSO = CreateObject("Scripting.FileSystemObject")

'Nnome file da generare con i nomi di dei file che superano la dimesione massima di caratteri (MaxCharacters)
file_name_output = "file_output_len_characters_exceed.txt"

'Creo il file
objFSO.CreateTextFile (file_name_output)

'Istanzio l'oggetto OuptFile al relativo file creato
Set OutputFile = objFSO.GetFile(file_name_output)

'Istanzio l'oggetto OutputTextStream
Set OutputTextStream = OutputFile.OpenAsTextStream(2)


'wscript.echo "Start Folder:""" & StartFolder 

'Inizio scansione
ScanDirectory(objFSO.GetFolder(StartFolder))

'Procedura ricorsiva, che scansiona tutte le cartelle
Sub ScanDirectory(TheFolder)
	if Len(TheFolder.Name) > MaxCharacters Then

	  'wscript.echo "Scanning Folder:[" & TheFolder  & "]" & vbCrLf & "folder_name=" & TheFolder.Name & vbCrLf & "folder_len=" & Len(TheFolder.Name)

	  CounterObjectExceed = CounterObjectExceed + 1

          OutputTextStream.WriteLine TheFolder & " -> [len=" & Len(TheFolder) & "]"

        end if

        CounterObject = CounterObject + 1
	
        ScanFiles TheFolder

	For Each Folder in TheFolder.SubFolders 
           ScanDirectory Folder
	Next
End Sub

'Procedura che analizza ogni file nella cartella 
Sub ScanFiles(Folder)
	For Each File in Folder.Files

	   'wscript.echo "Scanning File:[" & File.Path  & "]" & vbCrLf & "file_name=" & File.Name & vbCrLf & "file_len=" & Len(File.Name)
          
           if Len(File.Name) > MaxCharacters Then
             
              CounterObjectExceed = CounterObjectExceed + 1

              OutputTextStream.WriteLine File.Path & " -> [len=" & Len(File.Name) & "]"

           end if

           CounterObject = CounterObject + 1

	Next
End Sub

'Chiudo il file
OutputTextStream.Close

CounterObjectPercent = CounterObjectExceed / CounterObject

wscript.echo "Analisi eseguita per i file e sottocartelle in [" & StartFolder & "]" & vbCrLf & vbCrLf & "Numero cartelle e file analizzati: " & CounterObject & vbCrLf & "Numero cartelle o file che superano il numero massimo di caratteri ammissibili (" & MaxCharacters & "): " & CounterObjectExceed & vbCrLF & vbCrLf & "Percentuale: " & CounterObjectPercent & "%" & vbCrLF & vbCrLf & "Creato il file: " & file_name_output 

Per approfondimenti ulteriori: social.technet.microsoft.com (Brasser)

This entry was posted in Operating Systems, Programming Languages, VBScript, Windows. Bookmark the permalink.