根据txt文件中指定的文件名进行文件分类

Posted beyond

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了根据txt文件中指定的文件名进行文件分类相关的知识,希望对你有一定的参考价值。

根据txt文件中指定的文件名进行文件分类:

// 根据txt文件中指定的文件名进行文件分类

#include <stdio.h>
#include <stdlib.h>
#include <malloc.h>
#include <windows.h>
#include <io.h>
#include <direct.h>
#include <string.h>

void Remove_End_Char(char a[])
{
    int L = strlen(a);
    for (int i = 0; i <= L; i++)
    if (a[i] == \n)
    {
        a[i] = \0;
    }
}

char* Str_join(char *s1, char *s2)
{
    char *result = (char *)malloc(strlen(s1) + strlen(s2) + 1); 
    
    if (result == NULL)
        exit(1);

    strcpy(result, s1);
    strcat(result, s2);

    return result;
}


int main()
{

    char filename[] = "E:\\name.txt";
    FILE *fp;
    char StrLine[260];

    if ((fp = fopen(filename, "r")) == NULL)
    {
        printf("open file error!");
        return -1;
    }


    long Handle;
    struct _finddata_t FileInfo;

    int Same_num = 0;
    char *New_Picture_File;

    // 需要修改
    _chdir("E:\\");

    if ((Handle = _findfirst("*.jpg", &FileInfo)) == -1L)
    {
        printf("没有找到匹配的文件\n");
    }
    else
    {

        while (!feof(fp))
        {
            fgets(StrLine, 260, fp);
             Remove_End_Char(StrLine);

            // 文件名相同
            if (!strcmp(FileInfo.name, StrLine))
            {
                printf("%s\n", StrLine);
                Same_num++;

                // 需要修改
                New_Picture_File = Str_join("E:\\", StrLine);
                rename(StrLine, New_Picture_File);

            }

        }

        // 重置文件指针指向文件头部
        rewind(fp);
        while (_findnext(Handle, &FileInfo) == 0)
        {
            while (!feof(fp))
            {
                fgets(StrLine, 260, fp);
                Remove_End_Char(StrLine);

                // 文件名相同
                if (!strcmp(FileInfo.name, StrLine))
                {
                    printf("%s\n", StrLine);
                    Same_num++;

                    // 需要修改
                    New_Picture_File = Str_join("E:\\", StrLine);
                    rename(StrLine, New_Picture_File);

                    // 这两个都无法使用,参数还没匹配好
                    //system("copy    ");
                    //CopyFile(    );
                    
                }

            }
            rewind(fp);

        }
    
    }
    printf("相同图片的数量是: %d\n", Same_num);


    fclose(fp);
    _findclose(Handle);

    return 0;

}

 

以上是关于根据txt文件中指定的文件名进行文件分类的主要内容,如果未能解决你的问题,请参考以下文章

grep 返回“命令中指定的参数过多”[重复]

无法在 Qt5/cmake 项目中加载 Qt 资源文件中指定的图像

vba修改INI中指定的项

如何用c语言实现删除文件中指定的数据;例如

如何使用 .vbs 文件保存具有在电子表格中指定的名称的文件

权利文件与您的配置文件中指定的不匹配。(0xE8008016)