2014-03-25 10 views
9

Ich muss eindeutige Ordnernamen erstellen, sollte ich Path.GetRandomFileName verwenden oder einfach Guid.NewGuid verwenden?Sollte ich Path.GetRandomFileName verwenden oder eine Guid verwenden?

Guids sagen, sie sind weltweit einzigartig, GetRandomFileName macht keinen solchen Anspruch.

+4

Guids sind einzigartig. GetRandomFileName hängt davon ab, dass Ihr Computer von einem Meteor zerstört wird, der höhere Chancen als die 1: 1E17-Wahrscheinlichkeit einer Namenskollision hat. Ente! –

Antwort

7

Ich denke, beide sind gleichermaßen zufällig, mit dem Unterschied, dass Path.GetRandomFileName wird einen 8.3 Dateinamen (insgesamt 11 Zeichen) zu produzieren, so wird eine kleinere Anzahl von eindeutigen Namen als die von Guid.NewGuid generiert haben.

+0

nach dem Link (http://social.msdn.microsoft.com/Forums/vstudio/en-US/180b65dd-4c1d-4f2d-b02f-117db7afa7d9/why-use-pathgetrandomfilename-instead-of-guidnewguidtostring?forum= netfxbcl) die Länge ist 11 char – Mzf

+1

@Mzf: das Beispiel in msdn, gibt 'w143kxnu.idj', also 11 zufällige Zeichen im Format 8.3. Useful link though – NoviceProgrammer

+0

Ich frage mich, welche Basis GetRandomFileName verwendet (und damit den gesamten Ausgabebereich), wie es nicht angegeben ist. Was * angegeben ist, ist jedoch, dass GetRandomFileName "kryptografisch stark" ist, wenn ein UUIDv4/GUID keinen solchen Anspruch hat. – user2864740

Verwandte Themen