如何从C中的完整路径获取文件目录

亚历克斯·罗斯

我正在尝试C:\some\dir从输入参数(例如C:\some\dir\file的文件名中动态获取父目录(比如说),然后将其放在中char*我已经在中包含完整路径和文件char*在C语言中我该怎么做?

我有一些代码,但是在我看来,它们都是乱码,对此我一无所知。我应该如何返工/重写?

/* Gets parent directory of file being compiled */
    short SlashesAmount;
    short NamePosition;
    short NameLength;
    char* Pieces[SlashesAmount];
    char* SplitPath;
    short ByteNumber;
    short PieceNumber;
    char* ScriptDir;
    NameLength = strlen(File);

    //Dirty work
    SplitPath = strtok(File, "\");
    do {
        ByteNumber = 0;
        do {
            File[NamePosition] = CurrentPiece[ByteNumber];
            NamePosition++;
        } while(File[NamePosition] != '\n');
        PieceNumber++;
    } while(NamePosition < NameLength);
乔纳森·莱因哈特(Jonathon Reinhart)

您正在寻找的是dirname(3)这仅适用于POSIX。

Windows的替代方案是_splitpath_s

errno_t _splitpath_s(
   const char * path,
   char * drive,
   size_t driveNumberOfElements,
   char * dir,
   size_t dirNumberOfElements,
   char * fname,
   size_t nameNumberOfElements,
   char * ext, 
   size_t extNumberOfElements
);

示例代码(未经测试):

#include <stdlib.h>
const char* path = "C:\\some\\dir\\file";
char dir[256];

_splitpath_s(path,
    NULL, 0,             // Don't need drive
    dir, sizeof(dir),    // Just the directory
    NULL, 0,             // Don't need filename
    NULL, 0);           

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

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

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

如何从文件的完整路径获取目录?

如何获取当前文件目录的完整路径?

如何从文件选择器获取完整路径目录

如何获取与某些文件同名的目录的完整路径?

如何获取目录的完整路径

如何在Go中获取目录中所有文件的完整路径?

如何在Android的下载目录中获取每个文件的完整路径和名称

如何在JSP中获取文件上传的完整路径?

如何在bash中获取文件的完整路径?

如何在C ++(Linux)中获取具有文件名的文件的完整路径

如何获取文件的完整路径?

如何获取文件的完整路径?

如何正确获取文件的完整路径?

获取Java中的文件完整路径

在PowerShell中获取文件的完整路径

从JSON目录树中的文件完整路径计算目录

如何在目录及其子目录中列出某些文件类型的完整路径?

获取目录中唯一文件的完整路径

获取在UNIX中具有完整路径的文件和目录的列表

如何从Groovy的完整路径获取当前目录?

获取节点Webkit中目录的完整路径

如何创建从根目录到文件完整路径的映射

如何在终端中显示文件或目录的完整路径?

C# - 列出变量给出的目录中的文件,包括完整路径并用逗号分隔

打开目录时获取完整路径

如何从VB6中的文件完整路径获取文件图块(名称)?

如何获取在Google云端硬盘上的文件的完整路径?

如何使用PHP从完整路径获取文件名?

如何使用JavaScript从完整路径获取文件名?