按照目录结构整理文件到单个目录小工具

有时候有一些文件存放的目录结构非常复杂,但是实际上这样反而导致查看不方便,因为每次都要点进去子目录查看,然后又要返回,很不方便,我们希望这些文件可以整理到一个目录,但是又希望能够记得这些文件原来是在哪个目录的,于是我写了这款小工具,可以实现文件整理,并且支持目录结构恢复,这样就算万一操作错误了也没问题。

比如文件结构如下的文件:

 整理之后,就变成了如下的结果,会自动删除整理之后为空的目录(非空不删除):

其中文件名保持了目录结构,并且也保留了自身的名称。

软件界面如下:

 

核心代码如下:

//author:autumoon
//联系邮箱:9506#163.com
//日期:2023-03-02 
	//处理所有项目,推荐判断项目是否存在
	stDstDir = CStdStr::AddSlashIfNeeded(stDstDir);
	for (size_t i = 0; i < nItemCount; ++i)
	{
		const _tstring stCurItem = vItems[i];
		const _tstring stDstItem = stDstDir + CStdStr::GetNameOfFile(stCurItem);

#ifdef ITEM_ONLY_FILE
		if (CStdFile::IfAccessFile(stCurItem) && IsProperSuffix(stCurItem, m_cfg.vSuffixs))
		{
			ProcessFile(stCurItem, stDstItem, m_cfg);
		}
#endif // ITEM_ONLY_FILE

#ifdef ITEM_ONLY_DIR
		//如果是目录
		if(PathIsDirectory(stCurItem.c_str()))
		{
			//处理文件夹
			std::vector<_tstring> vSubFiles;
			size_t nSubFileCount = getFiles(stCurItem, vSubFiles, m_cfg.vSuffixs, bIncludeSub);

			for (int j = 0; j < nSubFileCount; ++j)
			{
				_tstring stSubSrcFile = vSubFiles[j];
				_tstring strSubDstFile = CStdStr::AddSlashIfNeeded(stDstItem) + CStdStr::ReplaceAllDistinct(stSubSrcFile.substr(CStdStr::AddSlashIfNeeded(stCurItem).length()), "\\", "_");

				//保存到根目录
				_tstring stDstFilePath = CStdStr::GetValidFilePath(strSubDstFile);

				CMoveItemsLog::MoveOneItem(stSubSrcFile, stDstFilePath);
			}

			//自动删除空目录
			std::vector<_tstring> vSubDirs;
			size_t nSubDirCount = getDirs(stCurItem, vSubDirs, bIncludeSub);

			for (size_t j = 0; j < nSubDirCount; ++j)
			{
				_rmdir(vSubDirs[j].c_str());
			}
			_rmdir(stCurItem.c_str());
		}
#endif // ITEM_ONLY_DIR

		ppi->SetProgressValue(i + 1, nItemCount);
	}

软件成品暂未公开,但关键源代码已经提供了,可以参考一下,自行实现功能即可。

如果仅仅需要软件成品的,可以私信我取得联系。

想要全套源代码的,也可以私信我取得联系,一起学习交流。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 要将单个文件上传到Git仓库的特定目录,需要按照以下步骤进行操作。 首先,确保已经在本地初始化了Git仓库。如果没有,可以通过在命令行中运行`git init`来初始化一个新的Git仓库。 接下来,将要上传的文件放置在与Git仓库相同的本地目录中。 然后,使用命令`git add <文件名>`将文件添加到Git暂存区中。确保使用文件名替换`<文件名>`部分。 现在,使用命令`git commit -m "<提交信息>"`将文件提交到本地Git仓库中。在`<提交信息>`部分,可以输入有关此次提交的描述信息。 最后,将本地保存的更改推送到远程仓库。使用命令`git push origin <分支名>`将更改推送到远程仓库中的特定分支。确保将`<分支名>`替换为要推送的分支名称。 完成上述步骤后,Git将成功将单个文件上传到仓库的特定目录中。可以通过浏览远程仓库来验证更改是否已成功推送。 ### 回答2: 要将单个文件上传到git仓库的某个目录,可以按照以下步骤进行操作: 1. 首先,在本地电脑上创建或定位到你想要上传的文件。确保该文件已保存在你的计算机上。 2. 打开Git Bash或终端窗口,进入你想要上传文件的git仓库目录。 3. 使用git add命令将文件添加到暂存区。例如,如果要将文件file.txt上传到路径为目录A/B的仓库中,可以使用以下命令: ``` git add A/B/file.txt ``` 这将把文件添加到暂存区。 4. 使用git commit命令提交文件到本地仓库。命令格式如下: ``` git commit -m "提交说明" ``` 例如: ``` git commit -m "Upload file.txt to directory A/B" ``` 这将把文件提交到本地仓库。 5. 最后,使用git push命令将本地仓库中的文件推送到远程仓库。命令格式如下: ``` git push 远程仓库名称 分支名称 ``` 例如: ``` git push origin master ``` 这将把文件上传到指定目录下的远程仓库。 总结起来,将文件上传到git仓库某个目录的步骤是: 1. 进入git仓库目录; 2. 使用git add命令将文件添加到暂存区; 3. 使用git commit命令提交文件到本地仓库; 4. 使用git push命令将本地仓库中的文件推送到远程仓库。 注意:在执行git push命令之前,确保已经对远程仓库进行了充分的准备工作,例如在本地使用git remote add命令将远程仓库添加到本地。 ### 回答3: 要将单个文件上传到 Git 仓库的某个目录,可以按照以下步骤进行操作: 1. 首先,在本地开发环境中找到要上传的文件,确保文件已经完成编辑并保存。 2. 打开 Git Bash 或终端,并进入包含该文件的本地 Git 仓库目录。 3. 使用以下命令将文件添加到暂存区中: ``` git add 文件路径 ``` 例如,若要上传名为 "example.txt" 的文件,可以使用以下命令: ``` git add example.txt ``` 4. 确认文件已经添加到暂存区后,使用以下命令将文件提交到本地仓库: ``` git commit -m "添加文件example.txt" ``` 可以根据需要修改提交信息中的内容。 5. 最后,使用以下命令将文件推送至远程仓库: ``` git push origin 分支名 ``` 其中,分支名指的是需要上传文件的目标分支名,例如 "main" 或 "master"。如未指定分支名,默认为当前所在分支。 完成以上操作后,单个文件就会成功上传到仓库的指定目录中了。请确保在上传前先配置好 Git 的远程仓库连接信息,以确保文件能够成功推送到远程仓库中。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值