Esiste davvero un vantaggio nell'utilizzo delle chiamate API Win per l'accesso ai file?

1

Ricordo di aver codificato l'accesso ai file utilizzando l'API Win circa 15 anni fa. Era molto più veloce dell'uso del FileStream della mia lingua al momento (Delphi).

Ho passato un po 'di tempo oggi a sperimentare in C # con .Net 4.5, e non riesco a vedere un reale vantaggio nell'utilizzo dell'API Win. Il più delle volte lo standard FileStream è più veloce, anche con il suo comportamento di buffering (lo so che usava aggiungere un overhead sostanziale una decina di anni fa).

Ho studiato questo articolo di ricerca di Microsoft, ma è da oltre 10 anni vecchio ora e non molto applicabile.

Quindi la mia domanda è questa: quando è vantaggioso utilizzare l'API Win in contrapposizione allo standard FileStream?

    
posta IamIC 15.01.2015 - 16:56
fonte

2 risposte

6

Quando si utilizza .NET (versioni particolarmente recenti di .NET), una buona guida è quella di utilizzare sempre la funzionalità integrata di .NET fino a quando ea meno che non vi sia un evidente vantaggio nel fare diversamente. In altre parole: assumere .NET è il modo giusto per portare a termine il lavoro finché non si sospetta (o si sa) che non lo è. Nove volte su dieci, il Framework (essendo stato usato così ampiamente) terrà conto di controlli e miglioramenti delle prestazioni che non verranno presi in considerazione.

È proprio la stessa ragione per cui la gente dice di non lanciare la propria soluzione di sicurezza se è possibile evitarlo - perché è già stato fatto da qualcuno che è probabilmente più intelligente di te e ne sa di più, e altre persone lo hanno già testato. Lo stesso vale per una libreria diffusa come .NET. Se qualcuno ha già fatto il lavoro per te, e che il lavoro è stato controllato da migliaia o milioni di utenti, perché non andare avanti con quello fino a che non hai una ragione per non farlo (come se non fornisse la funzionalità o le velocità di cui hai bisogno). / p>     

risposta data 15.01.2015 - 17:37
fonte
4

Utilizzando l'API di Win, puoi supportare percorsi lunghi nella tua applicazione:

[PathTooLongException]: The specified path, file name, or both are too long. The fully qualified file name must be less than 260 characters, and the directory name must be less than 248 characters.

Per ulteriori informazioni sull'utilizzo di percorsi lunghi in applicazioni .NET, consulta questa serie di blog:

link

    
risposta data 15.01.2015 - 17:45
fonte

Leggi altre domande sui tag