Bir dosyayı kaydetmeye çalıştığımda, Windows'ta adda özel karakterler (iki nokta üst üste, soru işareti veya ünlem işareti gibi) kullanırsam, dosya adının geçersiz olduğunu belirten bir ileti alıyorum.
Neden?
Bir dosyayı kaydetmeye çalıştığımda, Windows'ta adda özel karakterler (iki nokta üst üste, soru işareti veya ünlem işareti gibi) kullanırsam, dosya adının geçersiz olduğunu belirten bir ileti alıyorum.
Neden?
Yanıtlar:
Windows için (ve karakterlerin çoğunun orijinal olarak geldiği DOS) özel bir anlamı olan birkaç karakter vardır.
dan MSDN :
Dosya adı şu karakterlerden hiçbirini içeremez:
\ /: *? "<> |
/
bir anahtardır (ve ayrıca bir dizin ayırıcıdır).
\
bir dizin ayırıcıdır.
:
bir sürücü belirleyicisidir.
*
ve ?
aramada kullanılan joker karakterlerdir.
"
parametrelerdeki boşluklara izin vermenin bir yoludur.
<
ve >
bir programın giriş ve çıkışının ekran / klavye dışında bir şeyden gelmesine ve gitmesine izin veren yeniden yönlendirmelerdir.
|
bir programdan çıktının diğerine giriş olarak kullanılmasına izin veren bir borudır.
\
?
*
ve "
mevcut sözdiziminde gerçekten gerekli olan tek karakterdir, çünkü diğer karakterler sadece tırnak işaretleri dışında yararlıdır. İstisna şudur: başka bir yerde izin verirken yasadışı çıkarılabilen sadece ikinci karakter olarak yararlıdır. Başka bir deyişle, adında dosya yok A:A letter's story.txt
, ancak adında bir dosya ile sorun yokSarah: My favorite cat.txt
<>"
ayrılmış joker karakterlerdir. Windows bunları *?.
basit semantiğe sahip yerel NT'ye çevirirken DOS için karmaşık semantiği uygulamak için kullanır *?.
. Altı joker karakter ayrılmıştır, çünkü Windows dosya sistemi içinde joker karakter eşleşmesi uygular, yani doğrudan NtQueryDirectoryFile
sistem çağrısında kaçış mekanizması yoktur. Unix'te, joker karakterler genellikle onlardan kaçmayı destekleyen bir kabuk tarafından uygulama düzeyinde uygulanır.
:
genellikle dosya adlarında saklandığını, ancak dosya yollarında saklanmadığını unutmayın . Aygıt adları için ve dosya akışları için sınırlayıcı olarak kullanılır (örn. "Dosyaadı: akış adı: akış türü"). Ayrıca, bu tür VirtualBox gibi bazı dosya sistemleri paylaşılan klasör dosya sistemi izin :
, |
ve dosya adları ASCII kontrol karakterleri (1-31), ancak bunlar adlandırılmış yöneltme dosya sistemi hariç Microsoft'un dosya sistemlerinin tümünde ayrılmışlardır.