dock 栏使用技巧(一)添加文件夹快捷方式 空白分隔区 最近使用列表

本文介绍了如何在Mac的Dock栏中创建APP和文件夹快捷方式,将文件夹添加到左侧,设置空白分隔区,以及添加最近使用列表的堆栈。通过这些技巧,可以更高效地组织和使用Dock栏。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、创建APP/文件夹快捷方式

1.打开 Finder并切换到应用程序,选中要创建快捷方式的APP或文件夹,按住 command + option 键 同时拖动图标到桌面,快捷方式就创建成功了。

这里写图片描述

2.或者选中APP或文件夹图标之后右键点击 制作替身选项,就会发现多了一个 带有小箭头的 xxx替身的图标,也就是快捷方式,你可以把他移动到方便打开的地方。

制作替身

二、将文件夹拖到 dock 栏分割线左侧

我们知道dock 栏分为两部分,左侧的快捷方式栏和右侧的最小化窗口、文件夹栏。一般情况下,文件夹的快捷方式是不可以拖动到左侧的快捷方式部分。但是如果你有重要的或者特殊的文件夹要进行区分,比如程序员的工程目录、各种每天都需要打开的文档等等,想把他放到 dock 栏左侧怎么办呢?下面就教你如何实现。

  1. 选中要拖动的文件夹并按 return (回车)键,原来的名称后面加上.app后缀然后再按 return 键,此时会出现下图的提示,选择添加
    添加

  2. 此时再看原来的文件夹,变成了下图样式,不过不要担心,你的文件并没有 任何的损坏和丢失,但是你会发现已经能够将其拖动到 dock 栏左侧了,选个位置拖上去。

Private Sub Button2_Click_1(sender As Object, e As EventArgs) Handles Button2.Click If selectedFiles.Count = 0 Then MessageBox.Show("请至少选择个CSV文件", "提示", MessageBoxButtons.OK, MessageBoxIcon.Information) Return End If ' 清空DataGridView DataGridView1.Rows.Clear() DataGridView1.Columns.Clear() Dim enc As Encoding = Encoding.GetEncoding("shift_jis") Dim isFirstFile = True Dim totalRows As Integer = 0 ' 显示载进度 Dim progressDialog As New Form() progressDialog.Text = "载CSV文件" progressDialog.Size = New Size(300, 100) progressDialog.StartPosition = FormStartPosition.CenterParent Dim progressBar As New ProgressBar() progressBar.Dock = DockStyle.Fill progressBar.Minimum = 0 progressBar.Maximum = selectedFiles.Count progressBar.Value = 0 Dim lblStatus As New Label() lblStatus.Dock = DockStyle.Bottom lblStatus.TextAlign = ContentAlignment.MiddleCenter lblStatus.Text = "准备载..." progressDialog.Controls.Add(lblStatus) progressDialog.Controls.Add(progressBar) progressDialog.Show() Application.DoEvents() Try For Each filePath In selectedFiles lblStatus.Text = $"正在载: {Path.GetFileName(filePath)}" Application.DoEvents() If Not File.Exists(filePath) Then MessageBox.Show($"文件不存在: {filePath}", "错误", MessageBoxButtons.OK, MessageBoxIcon.Error) Continue For End If ' 动态检测分隔符 Dim detectedDelimiter As String = DetectDelimiter(filePath, enc) Dim maxColumns As Integer = 0 Using parser As New Microsoft.VisualBasic.FileIO.TextFieldParser(filePath, enc) parser.TextFieldType = FileIO.FieldType.Delimited parser.SetDelimiters(detectedDelimiter) ' 使用检测到的分隔符 parser.HasFieldsEnclosedInQuotes = True parser.TrimWhiteSpace = False ' 保留原始空白 ' 处理列头(仅第个文件) If isFirstFile AndAlso Not parser.EndOfData Then Dim headers = parser.ReadFields() maxColumns = headers.Length For Each header In headers DataGridView1.Columns.Add(header, header) Next isFirstFile = False End If ' 跳过后续文件的标题行 If Not isFirstFile AndAlso Not parser.EndOfData Then parser.ReadLine() ' 跳过标题行 End If ' 添加数据行 While Not parser.EndOfData Try Dim fields = parser.ReadFields() ' 确保列数致 If fields.Length <> maxColumns AndAlso maxColumns > 0 Then ' 调整字段数量以匹配列数 Dim adjustedFields(maxColumns - 1) As String Array.Copy(fields, adjustedFields, Math.Min(fields.Length, maxColumns)) fields = adjustedFields End If DataGridView1.Rows.Add(fields) totalRows += 1 ' 每载100行更新次界面 If totalRows Mod 100 = 0 Then lblStatus.Text = $"已载 {totalRows} 行..." DataGridView1.Refresh() Application.DoEvents() End If Catch ex As Exception MessageBox.Show($"文件解析错误: {filePath}{vbCrLf}{ex.Message}", "错误", MessageBoxButtons.OK, MessageBoxIcon.Error) End Try End While End Using ' 更新进度条 progressBar.Value += 1 Application.DoEvents() Next ' 显示载完成信息 MessageBox.Show($"成功载 {totalRows} 行数据", "完成", MessageBoxButtons.OK, MessageBoxIcon.Information) Finally progressDialog.Close() progressDialog.Dispose() End Try End Sub ' 检测文件分隔符的函数 Private Function DetectDelimiter(filePath As String, encoding As Encoding) As String ' 可能的候选分隔符 Dim possibleDelimiters() As String = {vbTab, ",", ",", " "} Dim delimiterCounts As New Dictionary(Of String, Integer) ' 初始化计数器 For Each delim In possibleDelimiters delimiterCounts(delim) = 0 Next ' 读取文件前100行进行检测 Using reader As New StreamReader(filePath, encoding) Dim lineCount As Integer = 0 While Not reader.EndOfStream AndAlso lineCount < 100 Dim line As String = reader.ReadLine() If String.IsNullOrEmpty(line) Then Continue While ' 统计每个分隔符的出现次数 For Each delim In possibleDelimiters delimiterCounts(delim) += line.Count(Function(c) c = delim(0)) Next lineCount += 1 End While End Using ' 选择出现频率最高的分隔符 Dim bestDelimiter As String = "," Dim maxCount As Integer = -1 For Each kvp In delimiterCounts If kvp.Value > maxCount Then maxCount = kvp.Value bestDelimiter = kvp.Key End If Next Return bestDelimiter End Function Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load DataGridView1.AutoSizeColumnsMode = DataGridViewAutoSizeColumnsMode.Fill Button2.Text = "载CSV文件" CheckedListBox1.CheckOnClick = True ' 载Log文件夹中的文件 Module1.OpenLogFile() End Sub Private Sub Button4_Click(sender As Object, e As EventArgs) Handles Button4.Click Me.DataGridView1.Rows.Clear() Me.DataGridView1.Columns.Clear() End Sub End Class 代码验证结果,.CSV文件行数载正确,但列只有3列,.CSV内容读取不完整。 DataGridView1.Column1依据每行内容字符长度自行调整,并且Column数量根据每行内容的分隔符字符如:“Tab”和“,”和“,”和“ ”任意个字符都满足分列条件,自行添加Column数量
07-11
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值