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)