前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >专栏 >dotnet 6 使用 CreateSymbolicLink 创建文件夹符号链接

dotnet 6 使用 CreateSymbolicLink 创建文件夹符号链接

作者头像
林德熙
发布于 2021-11-10 03:06:57
发布于 2021-11-10 03:06:57
1K00
代码可运行
举报
文章被收录于专栏:林德熙的博客林德熙的博客
运行总次数:0
代码可运行

本文告诉大家如何使用 dotnet 6 提供的 Directory.CreateSymbolicLink 和 File.CreateSymbolicLink 方法创建文件夹和文件的符号链接

Directory.CreateSymbolicLink

例子

使用方法十分简单,如下面例子,给 aa 文件夹创建一个叫 bb 文件夹的符号链接

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
        public static void Main(string[] args)
        {
            var a = Directory.CreateDirectory("aa");

            Directory.CreateSymbolicLink("bbb", a.FullName);
        }

效果

执行上述代码的效果如下

Rx-Explorer 里的效果如下

更多细节

这个 CreateSymbolicLink 方法是有返回值的,创建成功文件夹链接,将会返回文件夹对应的 DirectoryInfo 值

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
            var result = Directory.CreateSymbolicLink("bbb", a.FullName) as DirectoryInfo;

            // 输出 bbb 文件夹
            Console.WriteLine(result.FullName);

行为特例

  • 如果传入的 pathToTarget 参数,也就是上面代码的 a.FullName 参数,如果是文件,那么以上函数将继续成功执行,创建出一个不可用的文件夹链接
  • 在当 path 参数,也就是上面代码的 "bbb" 参数,存在文件夹的时候,将会失败,抛出 System.IO.IOException: Cannot create 'bbb' because a file or directory with the same name already exists. 错误

代码

以上所有代码放在 githubgitee 欢迎访问

可以通过如下方式获取本文代码

先创建一个空文件夹,接着使用命令行 cd 命令进入此空文件夹,在命令行里面输入以下代码,即可获取到本文的代码

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
git init
git remote add origin https://gitee.com/lindexi/lindexi_gd.git
git pull origin 0d632e7c1b7e9245744c9816d2c91b3ba94e1838

以上使用的是 gitee 的源,如果 gitee 不能访问,请替换为 github 的源

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
git remote remove origin
git remote add origin https://github.com/lindexi/lindexi_gd.git

获取代码之后,进入 BemfejulereLarcayjika 文件夹

File.CreateSymbolicLink

例子

使用 File.CreateSymbolicLink 的方法和使用 Directory.CreateSymbolicLink 的差不多,不同的在于类型不相同和传入的参数要求是文件而已,如下面代码

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
            File.WriteAllText("a.txt", "123");

            var result = File.CreateSymbolicLink("b.txt", "a.txt") as FileInfo;

            // 输出 b 文件
            Console.WriteLine(result.FullName);

            Console.WriteLine(File.ReadAllText("b.txt"));

可以看到符号链接的文件对于上层应用来说和其他文件是相同的用法,如上面代码,读取 b.txt 文件就和读取 a.txt 一样

效果

执行上面的代码可以看到如下的效果

尝试双击 b.txt 用记事本打开,记事本里面看到的是 a.txt 的内容,编辑也是对 a.txt 生效,如何 Windows API 的定义

行为特例

假定使用 File.CreateSymbolicLink 方法,传入的作为符号链接的是文件夹,那么将会抛出 System.UnauthorizedAccessException 异常,当前是 2021.11.06 使用 .NET 6-rc2 也许后续版本会更改行为

如果传入的文件是不存在的,也就是上面代码的 a.txt 假定是不存在的,将会抛出 System.IO.FileNotFoundException 错误

代码

在上面的代码仓库基础上,切换到 a423c63cb7bbd2a92a7e2daf59a8eb336b5e22c2 的 commit 即可拿到代码,可以使用如下命令进行切换

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
git pull origin a423c63cb7bbd2a92a7e2daf59a8eb336b5e22c2

参考

参考文档:

更多文档

更多链接相关请看:


本文会经常更新,请阅读原文: https://blog.lindexi.com/post/dotnet-6-%E4%BD%BF%E7%94%A8-CreateSymbolicLink-%E5%88%9B%E5%BB%BA%E6%96%87%E4%BB%B6%E5%A4%B9%E7%AC%A6%E5%8F%B7%E9%93%BE%E6%8E%A5.html ,以避免陈旧错误知识的误导,同时有更好的阅读体验。

如果你想持续阅读我的最新博客,请点击 RSS 订阅,推荐使用RSS Stalker订阅博客,或者前往 CSDN 关注我的主页

本作品采用 知识共享署名-非商业性使用-相同方式共享 4.0 国际许可协议 进行许可。欢迎转载、使用、重新发布,但务必保留文章署名林德熙(包含链接: https://blog.lindexi.com ),不得用于商业目的,基于本文修改后的作品务必以相同的许可发布。如有任何疑问,请 与我联系

无盈利,不卖课,做纯粹的技术博客

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
大数据平台和AI平台应该如何整合
大数据和AI两者最核心的部分都是数据。大数据的主要工作是对数据进行各种转换和存储。而AI的主要工作是学习数据并且得出模型。 AI天然需要大数据的基础,因为AI需要各种形态的数据,而我们得到这些形态的数据,必然离不开大数据。就此而言,他们两个合在一起,才是一个完整的工作流。
用户2936994
2022/07/21
1.2K0
大数据平台和AI平台应该如何整合
[AI学习笔记]DeepSeek 在金融风控中的特征工程实践
在金融行业中,风险控制是保障业务稳健发展的核心环节。无论是信用卡审批、贷款发放,还是投资组合管理,精准的风险评估都依赖于高质量的数据特征。DeepSeek 作为一款强大的 AI 驱动平台,通过创新的特征工程实践,为金融风控提供了全新的解决方案。
数字扫地僧
2025/04/01
1750
[AI学习笔记]DeepSeek 在金融风控中的特征工程实践
想搞机器学习,不会特征工程?
引言 在之前学习机器学习技术中,很少关注特征工程(Feature Engineering),然而,单纯学习机器学习的算法流程,可能仍然不会使用这些算法,尤其是应用到实际问题的时候,常常不知道怎么提取特征来建模。 特征是机器学习系统的原材料,对最终模型的影响是毋庸置疑的。 特征工程的重要意义 数据特征会直接影响你使用的预测模型和实现的预测结果。准备和选择的特征越好,则实现的结果越好。 影响预测结果好坏的因素:模型的选择、可用的数据、特征的提取。 优质的特征往往描述了数据的固有结构。 大多数模型都可以通过数据中
用户1332428
2018/03/08
6920
想搞机器学习,不会特征工程?
Byzer + OpenMLDB, SQL Boy 也能玩好工业级机器学习
其实,原先 Byzer 就已经可以通过几乎不需要编程就能完成整个机器学习的Pipeline,从数据加载,清洗,特征工程,模型训练对外提供端到端的 API 服务。具体的能力可以参考这篇文章: Byzer 机器学习最简教程(无需Python!) 当然这个系列还有特征工程,深度学习等等介绍,感兴趣看看。
用户2936994
2022/07/21
5600
Byzer + OpenMLDB, SQL Boy 也能玩好工业级机器学习
MLSQL解决了什么问题
1、项目难以重现,可阅读性和环境要求导致能把另外一个同事写的python项目运行起来不得不靠运气
用户1332428
2018/07/30
8170
MLSQL解决了什么问题
在谈MLSQL解决了什么问题之前,我们先提一个“数据中台”的概念。什么是数据中台呢?数据中台至少应该具备如下三个特点:
用户2936994
2018/12/28
9240
算法训练和模型部署如何避免多次重写数据预处理代码
前段时间,我们对接算法的工程师哭丧的和我说,模型生成后一般都要部署成API的形态对外提供服务,但是算法工程师并没有提供如何将一条数据转化特征向量的方法,他能拿到的是代码逻辑以及一些“中间元数据”。数据预处理本来就复杂,翻译也是一件极其困难的事情。我解释了这件事情难以解决的原因,但是显然他还是有些失望。
用户1332428
2018/07/30
7720
实时特征计算平台架构方法论和实践
作者 | 卢冕,第四范式开源机器学习数据库 OpenMLDB PMC core member
深度学习与Python
2022/06/11
1.1K0
实时特征计算平台架构方法论和实践
MLSQL解决了什么问题
在谈MLSQL解决了什么问题之前,我们先提一个“数据中台”的概念。什么是数据中台呢?数据中台至少应该具备如下三个特点:
木东居士
2020/04/26
7640
MLSQL解决了什么问题
开源机器学习数据库OpenMLDB:线上线下一致的高可用特征平台
本文整理自SACC 2022中国系统架构师大会的演讲,分享嘉宾是第四范式 资深体系架构科学家张浩,他本次的演讲中介绍了OpenMLDB的应用场景、产品特点、技术架构。重点会介绍OpenMLDB如何通过高性能的内存索引数据结构、多副本机制,以及分布式处理能力,为机器学习高效供给数据。
用户6543014
2023/03/02
7940
开源机器学习数据库OpenMLDB:线上线下一致的高可用特征平台
如何基于 Byzer 使用深度学习快速开发一个图片分类应用
基于 Byzer, 算法工程师可以完全自己一个人就能快速制作和发布一个基于AI模型的应用。整个流程会包括:
用户2936994
2022/10/06
3650
如何基于 Byzer  使用深度学习快速开发一个图片分类应用
Byzer + OpenMLDB 实现端到端的,基于实时特征计算的机器学习流程
本文示范如何使用OpenMLDB和 Byzer-lang 联合完成一个完整的机器学习应用。Byzer-lang 作为面向大数据和AI的一门语言,通过 Byzer-Notebook 和用户进行交互,用户可以轻松完成数据的抽取,ETL,特征/模型训练,保存,部署到最后预测等整个端到端的机器学习流程。OpenMLDB在本例中接收Byzer发送的指令和数据,完成数据的实时特征计算,并经特征工程处理后的数据集返回Byzer,供其进行后续的机器学习训练和预测。
用户2936994
2022/10/27
1.1K0
风控领域特征工程
在金融行业,风险控制(风控)是核心环节,它关乎资产安全、合规性以及机构的长期稳健发展。随着大数据时代的到来,金融机构面临着前所未有的数据量和复杂性。在这样的背景下,风控领域特征工程应运而生,成为连接原始数据与精准风险评估的桥梁。
用户3578099
2024/08/20
4250
风控领域特征工程
《SQL赋能人工智能:解锁特征工程的隐秘力量》
在当今的科技发展进程中,人工智能(AI)已经成为推动各领域变革的核心驱动力。而在人工智能的庞大体系里,特征工程占据着举足轻重的地位,它是将原始数据转化为能够让模型有效学习的特征的关键环节。鲜有人深入探讨的是,结构化查询语言(SQL)作为一种强大的数据处理工具,在人工智能的特征工程中发挥着独特且关键的作用。本文将深入挖掘SQL在人工智能特征工程中的应用技巧,带您领略这一技术融合的奇妙之处。
程序员阿伟
2025/04/05
1200
《SQL赋能人工智能:解锁特征工程的隐秘力量》
Meta(Facebook) 第三代 Notebook Daiquery 与 Byzer Notebook 对比
今天无意看到一篇文章,叫做SQL Notebooks: Combining the power of Jupyter and SQL editors for data analytics,在这篇文章里, Meta 介绍了自己的第三代 notebook 产品 Daiquery, 正如标题大家看到的,它的核心理念从一个以 Python 为主的 Notebook 转化成了一个以 SQL 为主, Python 为辅的 Notebook。 我觉得这是一个正确的进化路线。
用户2936994
2022/05/08
8100
Meta(Facebook) 第三代 Notebook Daiquery 与 Byzer Notebook 对比
【转载】什么是特征工程?
  有这么一句话在业界广泛流传:数据和特征决定了机器学习的上限,而模型和算法只是逼近这个上限而已。那特征工程到底是什么呢?顾名思义,其本质是一项工程活动,目的是最大限度地从原始数据中提取特征以供算法和模型使用。通过总结和归纳,人们认为特征工程包括以下方面:
marsggbo
2019/02/14
9340
【转载】什么是特征工程?
干货|谷歌大规模机器学习:模型训练、特征工程和算法选择
关键字全网搜索最新排名 【机器学习算法】:排名第一 【机器学习】:排名第二 【Python】:排名第三 【算法】:排名第四 谷歌机器学习:实际应用技巧 什么是机器学习(ML)? 从概念上讲:给定(训练
昱良
2018/04/08
3.1K0
干货|谷歌大规模机器学习:模型训练、特征工程和算法选择
特征工程之数据预处理(上)
分别介绍了确定项目终极目标、选择损失函数、获取数据以及构建测试集,接下来在进入选择算法和训练模型之前,一个很重要的步骤就是特征工程,它包括了对数据的预处理、特征提取、特征分析以及特征构建等几个步骤,可以说能否训练一个好的模型,除了选择合适的算法,准备好数据也是非常关键的!
kbsc13
2019/08/16
7840
基于Spark的大规模推荐系统特征工程
导读:特征工程在推荐系统中有着举足轻重的作用,大规模特征工程处理的效率极大的影响了推荐系统线上的性能。第四范式作为国际领先的机器学习和人工智能技术与平台服务提供商,面向大规模特征工程问题开发了下一代离线在线一致性特征抽取引擎FESQL,针对AI场景支持SQL接口,兼容Spark 3.0同时提供高性能的Native执行引擎。本次分享题目为基于Spark的大规模推荐系统特征工程及优化,主要内容包括:
Spark学习技巧
2020/09/08
1.1K0
基于Spark的大规模推荐系统特征工程
基于Spark的大规模推荐系统特征工程
导读:特征工程在推荐系统中有着举足轻重的作用,大规模特征工程处理的效率极大的影响了推荐系统线上的性能。第四范式作为国际领先的机器学习和人工智能技术与平台服务提供商,面向大规模特征工程问题开发了下一代离线在线一致性特征抽取引擎FESQL,针对AI场景支持SQL接口,兼容Spark 3.0同时提供高性能的Native执行引擎。本次分享题目为基于Spark的大规模推荐系统特征工程及优化,主要内容包括:
石晓文
2020/09/07
1.3K0
基于Spark的大规模推荐系统特征工程
推荐阅读
相关推荐
大数据平台和AI平台应该如何整合
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档