Beispiel #1
0
static void parse_opts_(wsn_all_configs_t *configs, int argc, char **argv)
{
  int opt;

  while (-1 != (opt = getopt(argc, argv, "c:h"))) {
    switch (opt) {
      case 'c':
        configs->conf_file = optarg;
        break;
      case 'h':
        usage_(0);
        break;
      default:
        usage_(1);
    }
  }
}
int _tmain(int argc, TCHAR *argv[])
{
	setlocale( LC_ALL, "" );
	bool append = false;
	int rc = 1;

	if (argc > 1) {
		if (_tcsicmp(argv[1], _T("/i")) == 0 || _tcsicmp(argv[1], _T("-i")) == 0) {
			if (argc < 4) {
				return 1;
			} else {
				if (_tcsicmp(argv[2], _T("/a")) == 0 || _tcsicmp(argv[2], _T("-a")) == 0)
					append = true;
				else if (_tcsicmp(argv[2], _T("/o")) == 0 || _tcsicmp(argv[2], _T("-o")) == 0)
					; //override
				else {
					usage_(argv[0]);
					return 1;
				}
				if (!_tfreopen(argv[3], _T("r"), stdin)) {
					_tprintf(_T("Error opening file %s"), argv[3]);
					usage_(argv[0]);
					return 1;
				}
			}
			rc = import_(append);
		} else if (_tcsicmp(argv[1], _T("/e")) == 0 || _tcsicmp(argv[1], _T("-e")) == 0) {
			if (argc > 2)
				if (!_tfreopen(argv[2], _T("w"), stdout)) {
					_tprintf(_T("Error opening file %s"), argv[2]);
					usage_(argv[0]);
					return 1;
				}
			rc = export_();
		} else {
			usage_(argv[0]);
		}
	} else {
		usage_(argv[0]);
	}
	return rc;
}
/*
引数例:
"C:\\users\\tmp.0001.txt"
"../..//users///tmp.0001.txt"
"C://users///tmp.0001.txt"
"C:\\users"	"/home"
"C:\\users/"	"/home/"
"C:\\users\\tmp.0001.txt"	"/home/tmp.0001.txt"
"C:/Users/public/Desktop/一時的フォルダ→すぐ削除する"
*/
int main(int argc ,const char* argv[])
{
	if (argc == 1) {
		usage_(argv[0]);
		return 0;
	}
	else if (argc == 2) {
		/* 注:パスはutf8で格納する */
#ifdef _WIN32
		cppl::file_system_path pa(osapi::utf8_from_cp932(argv[1]));
#else
		cppl::file_system_path pa(argv[1]);
#endif
//		cppl::file_system_path pa(argv[1]);
		return check_file_or_dir_( pa );
	}
	else if (argc == 3 && std::string("-md") == argv[1]) {
		/* 注:パスはutf8で格納する */
#ifdef _WIN32
		cppl::file_system_path pa(osapi::utf8_from_cp932(argv[2]));
#else
		cppl::file_system_path pa(argv[2]);
#endif
		return mkdir_( pa );
	}
	else if (argc == 4 && std::string("-rn") == argv[1]) {
		/* 注:パスはutf8で格納する */
#ifdef _WIN32
		cppl::file_system_path pa1(osapi::utf8_from_cp932(argv[2]));
		cppl::file_system_path pa2(osapi::utf8_from_cp932(argv[3]));
#else
		cppl::file_system_path pa1(argv[2]);
		cppl::file_system_path pa2(argv[3]);
#endif
		return rename_( pa1 , pa2 );
	}

	std::cerr << "Error:Bad argument.\n";
	return 1;
}