Het verplaatsen van bestanden die gebruikt worden

Vertaalde artikelen Vertaalde artikelen
Artikel ID: 140570 - Bekijk de producten waarop dit artikel van toepassing is.
Alles uitklappen | Alles samenvouwen

Op deze pagina

Samenvatting

Soms moeten Win32-toepassingen verwijderen, hernoemen of verplaatsen van bestanden momenteel wordt gebruikt door het systeem. Een voorbeeld is dat de installatie programma's nodig om zelf te verwijderen van de vaste schijf van de gebruiker wanneer ze zijn na afloop van een softwarepakket. Soms moeten verplaatsen stuurprogramma's die momenteel worden gebruikt door het systeem. Toepassingen hulp van het besturingssysteem deze bestanden verwijdert of verplaatst.

Windows 95 en Windows NT biedt een unieke methode voor het helpen toepassingen verwijderen, vervangen of wijzigen van bestanden en mappen in gebruik. Hoewel de twee platforms verschillen in hoe ze deze implementeren methoden, beide delen een algemene strategie waarbij de toepassing geeft welke bestanden en het systeem verwerkt de wanneer deze opnieuw wordt opgestart. Dit artikel wordt uitgelegd hoe toepassingen kunnen gebruiken met de methode die door elk Windows-platform.

Meer informatie

Verplaatsen van bestanden in Windows NT

Win32-toepassingen waarop Windows NT moeten gebruiken MoveFileEx() met de vlag MOVEFILE_DELAY_UNTIL_REBOOT te verplaatsen, vervangen of verwijderen van bestanden en mappen die momenteel wordt gebruikt. De volgende keer dat het systeem opnieuw is opgestart, de Windows NT bootup programma gaat, vervangen of de opgegeven bestanden verwijderen en mappen.

Verplaatsen of vervangen van een bestand of directory die wordt gebruikt door moet een toepassing een bron en bestemming pad (bijvoorbeeld op hetzelfde volume opgeven station C :). Als het doelpad een bestaand bestand is, kan overschreven. Als het doelpad een bestaande map is, zal niet overschreven en paden van de bron en bestemming blijven ongewijzigd. Hier is een voorbeeld aanroep of vervangen van een bestand of een map:
   // Move szSrcFile to szDstFile next time system is rebooted
   MoveFileEx(szSrcFile, szDstFile, MOVEFILE_DELAY_UNTIL_REBOOT);
				
Een bestand of directory wilt verwijderen, moet de toepassing de bestemming instellen pad naar NULL. Als de bronpad een map is, wordt verwijderd als leeg is. Als u moet MoveFileEx() gebruiken om bestanden uit een Directory, u moet de computer opnieuw opstarten voordat u kunt MoveFileEx() om te bellen de map verwijderen. Hier volgt een voorbeeld van hoe u een bestand verwijdert of lege een map:
   // Delete szSrcFile next time system is rebooted
   MoveFileEx(szSrcFile, NULL, MOVEFILE_DELAY_UNTIL_REBOOT);
				

Verplaatsen van bestanden in Windows 95

Windows 95 implementeert geen MoveFileEx(), maar biedt een alternatieve voor alle Win32 gebaseerde, 16-bits Windows en MS-DOS gebaseerde toepassingen verplaatsen, vervangen of verwijderen van bestanden (maar niet de mappen) die momenteel in gebruik. Deze mogelijkheid is geïmplementeerd via [naam] gedeelte van een bestand Wininit.ini genoemd. Als Wininit.ini aanwezig is in de Windows-map Wininit.exe verwerkt wanneer het systeem wordt opgestart. Eenmaal Wininit.ini is verwerkt, Wininit.exe hernoemd naar Wininit.bak.

De syntaxis van de sectie [naam] is:
   DestinationFileName=SourceFileName
				
Doelbestandsnaam en bronbestandsnaam moet zich op hetzelfde volume en korte (8.3) bestandsnamen worden omdat Wininit.ini wordt verwerkt voordat de beveiligde modus schijfsysteem wordt geladen en lange bestandsnamen worden alleen beschikbaar wanneer het systeem van de schijf protected-modus wordt uitgevoerd. Bestemming en bronbestanden die zijn opgegeven in Wininit.ini met lange bestandsnamen worden genegeerd.

De sectie [rename] kan meerdere regels met één bestand per regel bevatten. Naar een bestand verwijderen NUL opgeven als de doelbestandsnaam. Hier zijn enkele post Voorbeelden:
   [rename]
   NUL=C:\TEMP.TXT
   C:\NEW_DIR\EXISTING.TXT=C:\EXISTING.TXT
   C:\NEW_DIR\NEWNAME.TXT=C:\OLDNAME.TXT
   C:\EXISTING.TXT=C:\TEMP\NEWFILE.TXT
				
De eerste regel wordt Temp.txt worden verwijderd. De tweede oorzaak Existing.txt worden verplaatst naar een nieuwe map. De derde veroorzaakt Oldname.txt worden verplaatst en gewijzigd. De vierde wordt een bestaand bestand door Newfile.txt overschreven.

Toepassingen moeten WritePrivateProfileString() schrijven posten niet gebruiken [naam]-sectie omdat er meerdere regels met hetzelfde Doelbestandsnaam, vooral als doelbestandsnaam 'NUL'. In plaats daarvan zij moeten vermeldingen toevoegen door Wininit.ini parseren en de posten toevoegen het einde van de sectie [naam].

Opmerking: Gebruik altijd een niet-hoofdlettergevoelige zoekactie Wininit.ini parseren omdat de titel van de sectie [naam] en de namen van de bestanden erin kan hebben combinatie van hoofdletters en kleine letters.

Toepassingen die gebruikmaken van Wininit.ini te controleren of het bestaan in de Windows-map. Als Wininit.ini aanwezig is, heeft een andere toepassing naar het geschreven omdat het systeem de laatste keer is gestart. Daarom de toepassing moet openen en vermeldingen toevoegen aan de sectie [naam]. Als Wininit.ini niet aanwezig is, wordt de toepassing moet maken en toevoegen aan de sectie [naam]. Hiermee zorgt u ervoor dat gegevens uit andere toepassingen niet verwijderd per ongeluk door uw toepassing.

Om een file rename-bewerking ongedaan voordat u het systeem opnieuw is opgestart, moet u de bijbehorende regel verwijderen uit de sectie [naam] van de Wininit.ini het bestand.

Eigenschappen

Artikel ID: 140570 - Laatste beoordeling: vrijdag 13 juli 2012 - Wijziging: 6.0
De informatie in dit artikel is van toepassing op:
  • Microsoft Win32-API op de volgende platformen
    • Microsoft Windows 98 Standard Edition
    • Microsoft Windows Millennium Edition
Trefwoorden: 
kbapi kbfileio kbhowto kbkernbase kbprogramming kbmt KB140570 KbMtnl
Automatisch vertaald artikel
BELANGRIJK: Dit artikel is vertaald door de vertaalmachine software van Microsoft in plaats van door een professionele vertaler. Microsoft biedt u professioneel vertaalde artikelen en artikelen vertaald door de vertaalmachine, zodat u toegang heeft tot al onze knowledge base artikelen in uw eigen taal. Artikelen vertaald door de vertaalmachine zijn niet altijd perfect vertaald. Deze artikelen kunnen fouten bevatten in de vocabulaire, zinsopbouw en grammatica en kunnen lijken op hoe een anderstalige de taal spreekt en schrijft. Microsoft is niet verantwoordelijk voor onnauwkeurigheden, fouten en schade ontstaan door een incorrecte vertaling van de content of het gebruik ervan door onze klanten. Microsoft past continue de kwaliteit van de vertaalmachine software aan door deze te updaten.
De Engelstalige versie van dit artikel is de volgende: 140570

Geef ons feedback

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com