小编Rad*_*adu的帖子

在Linux中复制文件的最有效方法

我正在一个独立于操作系统的文件管理器,我正在寻找最有效的方法来复制Linux文件.Windows有一个内置函数CopyFileEx(),但是从我注意到的,Linux没有这样的标准函数.所以我想我必须实现自己的.显而易见的方法是fopen/fread/fwrite,但有更好(更快)的方法吗?我还必须能够偶尔停止每一次,以便我可以更新文件进度菜单的"复制到目前为止"计数.

c linux

27
推荐指数
3
解决办法
2万
查看次数

在Linux上使用默认查看器打开文件

我在一个独立于操作系统的文件管理器(主要是Windows和Linux)上工作,我想知道是否有一种Linux方法可以在其默认查看器中打开文件.例如,使用Firefox打开html文件,使用vlc打开.avi,依此类推.在Windows上,有一个函数ShellExecute()可以做到这一点,但我的理解是,在Linux上并不是那么简单,每个桌面环境都有一个特定的方式.我很感激任何帮助.

c linux

5
推荐指数
1
解决办法
297
查看次数

查找文件的所有者和组(作为字符串)

我正在尝试获取文件的所有者和组的C字符串,在我执行之后,stat()我获取用户ID和组ID,但如何获取名称?

c linux

5
推荐指数
1
解决办法
9152
查看次数

在Linux中复制设备

我在一个独立于操作系统的文件管理器,在C.工作.我设法复制文件,链接和目录,但我不知道如何复制设备.我将不胜感激任何帮助.

c linux

1
推荐指数
1
解决办法
5030
查看次数

如何确定文件是否是目录(最佳方式)

我在一个独立于操作系统的文件管理器上工作,我在Windows上正确检测文件是否是目录时遇到问题.direntWindows上的结构似乎没有DT_DIR字段,所以我使用:

file_attributes=GetFileAttributes(ep->d_name);
if(file_attributes & FILE_ATTRIBUTE_DIRECTORY)files_list[i].is_dir=1;
else files_list[i].is_dir=0;
Run Code Online (Sandbox Code Playgroud)

但是,这并不总是准确的,因为某些文件被标记为目录(例如,pagefile.sys).此外,GetFileAttributes如果你有很多文件,那就相当慢.

我也有一个功能:

int does_dir_exist(char *path)
{
DIR *dp_test;

dp_test = opendir(path);
if(dp_test)
    {
        return 1;
        closedir(dp_test);
    }

return 0;
  }
Run Code Online (Sandbox Code Playgroud)

但这很慢(在10000个文件上做这个不是一个好主意).

当然,我可以将两者结合得非常快,但有更好的方法吗?

PS由于某些原因无法为第二个功能正确格式化代码.

c winapi

1
推荐指数
1
解决办法
1076
查看次数

标签 统计

c ×5

linux ×4

winapi ×1