⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 mv.c

📁 国外网站上的一些精典的C程序
💻 C
字号:
/*** mv.c -- move or rename files or directories  ** updated for multiple files, 5 jul 92, rlm    ** placed in the public domain via C_ECHO by the author, Ray McVay**** modified by Bob Stout, 28 Mar 93** modified by Bob Stout,  4 Jun 93**** uses file_copy from SNIPPETS file WB_FCOPY.C*/#include <stdio.h>#include <stdlib.h>#include <string.h>#include <dos.h>#include "dirport.h"#include "snipfile.h"#include "dosfiles.h"#if defined(MSDOS) || defined(__MSDOS__) #include "unistd.h"#else #include <unistd.h>#endif/***  Tell 'em they messed up*/void help(char *s){      puts("usage: mv <oldname [...]> <newname|newdir>");      printf("error: %s\n", s);}/***  Simple directory test*/isdir(char *path){      DOSFileData f;      /* "Raw" drive specs are always directories     */      if (':' == path[1] && '\0' == path[2])            return 1;      return (Success_ == FIND_FIRST(path, _A_SUBDIR, &f) &&            (ff_attr(&f) & _A_SUBDIR));}/***  Use rename or copy and delete*/int mv(char *src, char *dest){      int errcount = 0;      char buf[FILENAME_MAX];      const char *generr = "ERROR: mv - couldn't %s %s %s\n";      if (':' == dest[1] && *dest != *getcwd(buf, FILENAME_MAX))      {            if (file_copy(src, dest))            {                  printf(generr, "move", src, dest);                  ++errcount;            }            else if (remove(src))            {                  printf(generr, "delete", src, "");                  ++errcount;            }      }      else      {            if (rename(src, dest))            {                  printf(generr, "rename", src, dest);                  ++errcount;            }      }      return errcount;}/***  Enter here*/int main(int argc, char **argv){      int src, errcount = 0;      char target[FILENAME_MAX];      puts("mv 1.3 (4 jun 93) - Ray L. McVay/Bob Stout");      if (argc < 3)            help("Not enough parameters");      /*      **  Handle cases where target is a directory      */      else if (isdir(argv[argc -1]))      {            for (src = 1; src < argc - 1; src++)            {                  char termch;                  strcpy(target, argv[argc - 1]);                  termch = target[strlen(target) - 1];                  if ('\\' != termch && ':' != termch)                        strcat(target, "\\");                  if (strrchr(argv[src], '\\'))                        strcat(target, strrchr(argv[src], '\\') + 1);                  else if (argv[src][1] == ':')                        strcat(target, argv[src] + 2);                  else  strcat(target, argv[src]);                  errcount += mv(argv[src], target);            }      }      /*      **  Nothing left except 2 explicit file names      */      else if (argc == 3)            errcount += mv(argv[1], argv[2]);      return errcount;}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -