Qual è la differenza tra la directory corrente e la directory di lavoro in Windows? Come si può cambiare la directory di lavoro per applicazioni come Notepad ++ o Mozilla Firefox?Differenza tra la directory corrente e la directory di lavoro in Windows
8
A
risposta
6
La directory corrente e la directory di lavoro sono solo due nomi diversi per la stessa cosa. Ogni processo mantiene una singola directory corrente.
La directory corrente viene specificata all'avvio come parametro a seconda della funzione utilizzata per creare il processo, ad esempio CreateProcess
. Come si modifica la directory corrente per una delle applicazioni? Bene, dipende da come lo si avvia.
- Se si avvia da un collegamento, modificare le proprietà del collegamento per specificare la directory corrente.
- Se si avvia da un prompt dei comandi, la directory corrente sarà la directory corrente del prompt dei comandi nel momento in cui viene avviata.
- Se si inizia chiamando
CreateProcess
, la corrente di lavoro sarà qualsiasi cosa si passa aCreateProcess
nel parametrolpCurrentDirectory
. Se si passaNULL
, verrà utilizzata la directory corrente del processo principale.
Quando avvio Notepad ++ dal collegamento, vedo la directory corrente in Process Explorer. Lo vedo come C: \ Windows. Quando eseguo un comando createProcess e imposta una directory valida (ad esempio D: \ abcd) nel campo lpCurrentDirectory, mostra ancora C: \ Windows. Non dovrebbe mostrare D: \ abcd? – user2024398
Bene, ricorda che un processo può modificare la propria directory corrente ogni volta che lo desidera. Forse npp lo sta facendo. Non lo so. È anche possibile che ci sia un difetto nella chiamata a 'CreateProcess'. –
Grazie:) ... Mi dispiace non essere in grado di sviare la risposta perché sono nuovo su Stackoverflow e la mia reputazione è inferiore a 15 punti. Lo farò una volta che li avrò. – user2024398