无法使用remove()路径删除文件夹中的文件

加布里埃拉·奥撒旦(Gabriela OhSatan)

我有以下代码,删除文件时出现错误,但文件已关闭且应该没有问题,idk我在做什么错,我也打印了路径,没有应该做的字符一个问题和权限是情节的转折点是该文件已成功删除,但该函数仍提供-1

while ((stdir = readdir(dirIn)) != NULL && iRet == R_OK) 
{
    if (strstr(stdir->d_name, tParametros.szArchEntrada) != NULL) 
    {
        
        memset (szRuta, 0x00,sizeof(szRuta));
        sprintf(szRuta,"%s/%s", tParametros.szPathEntrada, stdir->d_name);
        sprintf(szArchEntrada,"%s", stdir->d_name);
        strcpy(szArchProc, stdir->d_name);
    
        if((pfdEntrada = fopen(szRuta, "r")) == NULL)
        {
            fprintf(gpfdLogFile, "%s%sNo se pudo abrir el archivo de entrada[%s]\n", 
                LINEA, ctime(&tTimeNow), stdir->d_name);
            iRet = R_ARCH_ENTR;
        }
        else
        {           
            fprintf(gpfdLogFile, "%s%sSe abrio archivo de entrada: [%s]\n", 
                LINEA, ctime(&tTimeNow), stdir->d_name);
                
            bFlagOpenArchIn = B_TRUE;
            
            fprintf(gpfdLogFile, "%s%sSe abrio archivo tmp: [%s.tmp]\n", 
                LINEA, ctime(&tTimeNow), stdir->d_name);
                
            memset (szBuffer,0x00,sizeof(szBuffer));
            memset (szBufferAux,0x00,sizeof(szBufferAux));
            while((iRet == R_OK) && 
                (fgets(szBuffer, MAX_VAR_PARAM, pfdEntrada) != NULL))
            {       
                ldCount++;
                
                if(ldCount == 1)
                    continue;

                if(ldCount == 2)
                {
                    strcpy(szArchProc, cfnObtengoSecuencia(stdir->d_name));
        
                    /* Abrimos el archivo tmp */    
                    memset (szRuta, 0x00,sizeof(szRuta));
                    sprintf(szRuta,"%s/%s.tmp", tParametros.szPathTmp, szArchProc);
                    
                    if((pfdTmp = fopen(szRuta, "w")) == NULL)
                    {
                        fprintf(gpfdLogFile, "%s%sNo se pudo abrir el archivo tmp[%s]\n", 
                            LINEA, ctime(&tTimeNow), szArchProc);
                        iRet = R_ARCH_TMP;
                        bFlagOpenArchTmp = B_FALSE;
                    }
                    else    
                        bFlagOpenArchTmp = B_TRUE;
                }
                else if(ldCount2 == tParametros.iMaxRegistros)
                {
                    fclose(pfdTmp);
                    ldCount2 = 0;
                    strcpy(szArchProc, cfnObtengoSecuencia1(szArchProc));
                    
                    memset (szRuta, 0x00,sizeof(szRuta));
                    sprintf(szRuta,"%s/%s.tmp", tParametros.szPathTmp, szArchProc);
                    
                    if((pfdTmp = fopen(szRuta, "w")) == NULL)
                    {
                        fprintf(gpfdLogFile, "%s%sNo se pudo abrir el archivo tmp[%s]\n", 
                            LINEA, ctime(&tTimeNow), szArchProc);
                        iRet = R_ARCH_TMP;
                        bFlagOpenArchTmp = B_FALSE;
                    }
                    else    
                        bFlagOpenArchTmp = B_TRUE;
                }
                    
                if (bFlagOpenArchTmp == B_TRUE)
                {
                    strcpy(szBufferAux, ifnFormateo(szBuffer));
                    fputs(szBufferAux, pfdTmp);
                    ldCount2++;
                }
                
                memset (szBuffer,0x00,sizeof(szBuffer));
                memset (szBufferAux,0x00,sizeof(szBufferAux));
            }/*WHILE 2*/                
        }/* IF 2 */
    }/* IF 1 */
    fclose(pfdTmp);
}/*WHILE 1*/
    
/************TMP*********/
if ((dirTmp = opendir(tParametros.szPathTmp)) == NULL && iRet != R_OK)
{
    fprintf(gpfdLogFile, "%s%sERROR no se puede abrir el directorio de entrada[%s]\n", 
                LINEA, ctime(&tTimeNow), tParametros.szPathTmp);
    return R_DIR_ENTR;
}
else 
{
    bFlagOpenDirTmp = B_TRUE;
    fprintf(gpfdLogFile, "%s%sDirectorio [%s] abierto\n", 
                LINEA, ctime(&tTimeNow),  tParametros.szPathTmp);
}   


/* Abro el directorio de entrada */
while ((stdir = readdir(dirTmp)) != NULL && iRet == R_OK) 
{
    if (!strcmp(stdir->d_name,".") == 0 && !strcmp(stdir->d_name,"..") == 0
            && strstr(stdir->d_name, "tmp") != NULL) 
    {
        ldCant = 0;
        strcpy(szArchAux, stdir->d_name);
        memset (szRutaAux,  0x00,sizeof(szRutaAux));
        sprintf(szRutaAux,"%s%s", tParametros.szPathTmp, szArchAux);
        iRet = ifnObtenerCant(szArchAux, &ldCant);
        
        memset (szArchProc, 0x00,sizeof(szArchProc));
        strcpy(szArchProc, cfnObtenerNombre(szArchAux));
        
        memset (szRuta, 0x00,sizeof(szRuta));
        sprintf(szRuta,"%s%s", tParametros.szPathSalida, szArchProc);
        
        
        if (rename(szRutaAux, szRuta) != R_ERROR)
            fprintf(gpfdLogFile, "%s%sSe genera el archivo de salida [%s]\n", 
                LINEA, ctime(&tTimeNow), szRuta);
        else
        {
            fprintf(gpfdLogFile, "%s%sERROR al generar el archivo de salida [%s]\n", 
                LINEA, ctime(&tTimeNow), szRuta);
            iRet = R_ERROR;
        }
        
        if (remove(szRutaAux) == R_ERROR)
        {
            fprintf(gpfdLogFile, "%s%sERROR al eliminar el archivo tmp [%s]\n", 
                LINEA, ctime(&tTimeNow), szRutaAux);
            iRet = R_ERROR;
        }   
    
    }
}

#undef  R_OK
#define R_OK                    0
#undef  R_ERROR                 
#define R_ERROR                 -1
艾米

在该文件szRutaAux重命名它之后将不复存在szRutarename(szRutaAux, szRuta)

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

无法使用remove()路径删除文件夹中的文件

来自分类Dev

文件夹正在使用中,因此无法删除。

来自分类Dev

文件夹正在使用中,因此无法删除。

来自分类Dev

无法在Unix中删除文件夹

来自分类Dev

无法使用Java删除文件夹

来自分类Dev

从包含删除项的路径中删除最早的文件夹

来自分类Dev

无法删除文件夹

来自分类Dev

如何删除路径数组中的父文件夹?

来自分类Dev

Nginx Server:如何从URL中删除文件夹路径?

来自分类Dev

从 KCFinder 图像路径中删除 www 文件夹

来自分类Dev

使用通配符递归复制文件夹中的文件(文件夹路径中包含通配符)

来自分类Dev

无法从终端文件夹中删除文件

来自分类Dev

无法删除/复制/粘贴Gnome中的文件或文件夹

来自分类Dev

无法CD到文件夹路径中带有空格的文件夹

来自分类Dev

无法删除文件(文件夹?)

来自分类Dev

无法删除文件(文件夹?)

来自分类Dev

无法删除其中的文件夹或文件

来自分类Dev

如何使用JavaScript从文件夹中删除文件?

来自分类Dev

使用批处理删除文件夹中的文件

来自分类Dev

使用bat删除子文件夹中的文件

来自分类Dev

如何使用php删除文件夹中的json文件

来自分类Dev

使用python删除文件夹和子文件夹中的pdf文件?

来自分类Dev

使用VBA删除FTP文件夹中的文件和文件夹

来自分类Dev

使用文件夹GUID在Powershell中获取任何特殊的文件夹路径

来自分类Dev

使用文件夹GUID在Powershell中获取任何特殊的文件夹路径

来自分类Dev

当路径中的文件夹中有空格时,无法直接从文件夹中打开PowerShell文件

来自分类Dev

无法从桌面文件夹中删除/隐藏图标

来自分类Dev

无法在Windows 10中删除损坏的文件夹

来自分类Dev

无法在Windows 8中删除文件夹

Related 相关文章

  1. 1

    无法使用remove()路径删除文件夹中的文件

  2. 2

    文件夹正在使用中,因此无法删除。

  3. 3

    文件夹正在使用中,因此无法删除。

  4. 4

    无法在Unix中删除文件夹

  5. 5

    无法使用Java删除文件夹

  6. 6

    从包含删除项的路径中删除最早的文件夹

  7. 7

    无法删除文件夹

  8. 8

    如何删除路径数组中的父文件夹?

  9. 9

    Nginx Server:如何从URL中删除文件夹路径?

  10. 10

    从 KCFinder 图像路径中删除 www 文件夹

  11. 11

    使用通配符递归复制文件夹中的文件(文件夹路径中包含通配符)

  12. 12

    无法从终端文件夹中删除文件

  13. 13

    无法删除/复制/粘贴Gnome中的文件或文件夹

  14. 14

    无法CD到文件夹路径中带有空格的文件夹

  15. 15

    无法删除文件(文件夹?)

  16. 16

    无法删除文件(文件夹?)

  17. 17

    无法删除其中的文件夹或文件

  18. 18

    如何使用JavaScript从文件夹中删除文件?

  19. 19

    使用批处理删除文件夹中的文件

  20. 20

    使用bat删除子文件夹中的文件

  21. 21

    如何使用php删除文件夹中的json文件

  22. 22

    使用python删除文件夹和子文件夹中的pdf文件?

  23. 23

    使用VBA删除FTP文件夹中的文件和文件夹

  24. 24

    使用文件夹GUID在Powershell中获取任何特殊的文件夹路径

  25. 25

    使用文件夹GUID在Powershell中获取任何特殊的文件夹路径

  26. 26

    当路径中的文件夹中有空格时,无法直接从文件夹中打开PowerShell文件

  27. 27

    无法从桌面文件夹中删除/隐藏图标

  28. 28

    无法在Windows 10中删除损坏的文件夹

  29. 29

    无法在Windows 8中删除文件夹

热门标签

归档