2015-02-17 12 views
5

ho dovuto aiutare qualcuno eliminare una cartella che ha avuto caratteri strani in essa che ha causato il percorso per essere ri-interepeted come un percorso diverso:Qual è il nome del costrutto "\? " In windows?

c:\test.  -> c:\test 

Mi c'è voluto un po 'per ricordare il \\?\ costrutto, dal momento che non ho idea di come è chiamato o come cercarlo. Una volta mi sono ricordato, però, è stato facile:

\\?\c:\test. -> c:\test. 

Qual è il nome di questo costrutto, che io (e altri) può cercarlo?

+1

È il nome percorso nativo. Non che questo ti possa aiutare, nessun altro sa come si chiama. Basta fare la domanda. –

+0

Penso di averlo visto come un prefisso * di collegamento simbolico * ma non riesco a trovare un riferimento in questo momento. –

+3

Lo chiamo il _double-back-slash-and-question-mark-thing_. Le persone che sanno che mi capiscono. – rodrigo

risposta

1

Non penso che abbia un nome ufficiale in uso diffuso, quindi dubito che tu possa andare molto lontano in qualsiasi ricerca. Viene qui descritto: https://msdn.microsoft.com/en-gb/library/windows/desktop/aa365247.aspx#maxpath

L'API di Windows ha molte funzioni che hanno anche versioni Unicode per consentire un percorso esteso di lunghezza per una lunghezza di percorso massimo totale di 32.767 caratteri. Questo tipo di percorso è composto da componenti separati da barre retroverse, ciascuno fino al valore restituito nel parametro lpMaximumComponentLength della funzione GetVolumeInformation (questo valore è comunemente di 255 caratteri). Per specificare un percorso di lunghezza estesa, utilizzare il prefisso "\\? \". Ad esempio, "\\? \ D: \ percorso molto lungo".

Per questo utilizzo potrebbe essere chiamato il esteso-lunghezza del percorso del prefisso. Tuttavia, il prefisso serve ad altri scopi, in particolare sopprimendo la canonizzazione del percorso in modalità utente, lo scopo di cui ti stai avvalendo.

Come si può vedere dai commenti a questa risposta, ci sono molte opinioni diverse sul nome più adatto. Penso che tutti possiamo essere d'accordo sul fatto che non esiste un unico nome ufficialmente usato per questa cosa!

+0

Interessante. Nella migliore delle ipotesi, potresti chiamarlo una varietà di spazio dei nomi (come nello spazio dei nomi \\. \ Device), ma è abbastanza buono. –

+1

Inoltre, wow SO non ama i backslash nei post o nei commenti ... –

+0

Se chiami 'ntdll! RtlDosPathNameToNtPathName_U', il' UNICODE_STRING' tradotto userà il prefisso nativo '\ ??' per i dispositivi DOS, quindi lo chiamo Prefisso dispositivo DOS Win32. Si noti che se si ha accesso al collegamento '\\? – eryksun

Problemi correlati