Microsoft Windows læser data fra den forkerte fil eller mappe
Summary: Når et filsystem indeholder objekter med samme stavemåde, men store og små bogstaver på samme placering, kan Microsoft Windows læse data fra en "forkert" fil eller mappe.
Symptoms
Observeret adfærd på klientsiden:
- Modtagelse af indhold fra "FILENAME", når du åbner "filnavn" (data læses fra en "forkert" fil)
- Gentagne gange åbning af "filnavn" giver data enten fra "filnavn" eller "FILNAVN" tilfældigt
- Microsoft Office gemmer en fil i en "forkert mappe" (hvis der er mapper med forskellige bogstaver)
Klienten har objekter med samme stavemåde, men med forskellige bogstaver på samme filsystemplacering, f.eks.
..\DIR-NAME\ ..\Dir-name\ ..\dir-name\
..\FILENAME ..\Filename ..\filename
Microsoft File Explorer viser korrekt objekter med forskellige store og små bogstaver som forskellige filer/mapper.
Pakkesporinger, der er taget, mens du åbner en placering med objekter med samme stavemåde, men med forskellige bogstaver, viser et SMB-svar (Server Message Block) fra PowerScale, der indeholder begge objekter ("FILNAVN" og "filnavn"). Alle andre efterfølgende operationer udføres på objektet med præcis stavning og hus specificeret af klienten.
Cause
Microsoft Windows skelner ikke mellem store og små bogstaver, men moderne filsystemer, der bruges af Windows, understøtter forskel på store og små bogstaver.
Se følgende Microsoft-dokument:
https://msdn.microsoft.com/en-us/library/windows/desktop/aa365247(v=vs.85).aspx
Navngivning af filer, stier og navneområder
...
Navngivningskonventioner
...
Antag ikke, at der er forskel på store og små bogstaver. Du kan f.eks. betragte navnene OSCAR, Oscar og Oscar som de samme, selvom nogle filsystemer (f.eks. et POSIX-kompatibelt filsystem) kan betragte dem som forskellige. Bemærk, at NTFS understøtter POSIX-semantik for forskel på store og små bogstaver, men dette er ikke standardfunktionsmåden.
Resolution
Undgå at have objekter med samme stavemåder, men med forskellige bogstaver på samme placering, som Microsoft Windows har adgang til.
Additional Information
Windows tillader ikke oprettelse af filer med navnet 'somefile' og 'SOMEFILE' på samme sted - Windows producerer fejlen "allerede eksisterende".
Et filsystem kan dog ende med objekter med forskellige bogstaver på forskellige måder, for eksempel:
- oprettelse af objekter med forskellige bogstaver fra ethvert POSIX-kompatibelt operativsystem (for eksempel Linux)
- gendannelse ved hjælp af ikke-Windows-backup (snapshots, Tivoli, så videre), der indeholder både 'SOMEFILE' og 'somefile', der eksisterede på forskellige tidspunkter.
Når du arbejder i Microsoft Office, involverer fillagringsprocessen sletning af den originale fil og lagring af en midlertidig fil i det originale filnavn. Denne proces kan føre til uventede resultater, når der er samme stavede, men forskellige bogstaver mapper eller filer.