diff --git a/Plain Craft Launcher 2/Modules/ModMain.vb b/Plain Craft Launcher 2/Modules/ModMain.vb index 51cde8e..2839a54 100644 --- a/Plain Craft Launcher 2/Modules/ModMain.vb +++ b/Plain Craft Launcher 2/Modules/ModMain.vb @@ -873,15 +873,23 @@ NextFile: End Sub ''' - ''' 申请一个可用于任务缓存的临时文件夹,以 \ 结尾。 + ''' 申请一个可用于任务缓存的临时文件夹。 ''' 这些文件夹无需进行后续清理。 ''' ''' 是否要求路径不包含空格。 - Public Function RequestTaskTempFolder(Optional RequireNonSpace As Boolean = False) As String + ''' 是否要求路径斜杠。 + Public Function RequestTaskTempFolder(Optional RequireNonSpace As Boolean = False, Optional RequireSlash As Boolean = True) As String TryClearTaskTemp() - RequestTaskTempFolder = $"{PathTemp}TaskTemp\{GetUuid()}-{RandomInteger(0, 1000000)}\" - If RequireNonSpace AndAlso RequestTaskTempFolder.Contains(" ") Then - RequestTaskTempFolder = $"{OsDrive}ProgramData\PCL\TaskTemp\{GetUuid()}-{RandomInteger(0, 1000000)}\" + If RequireSlash Then + RequestTaskTempFolder = $"{PathTemp}TaskTemp\{GetUuid()}-{RandomInteger(0, 1000000)}\" + If RequireNonSpace AndAlso RequestTaskTempFolder.Contains(" ") Then + RequestTaskTempFolder = $"{OsDrive}ProgramData\PCL\TaskTemp\{GetUuid()}-{RandomInteger(0, 1000000)}\" + End If + Else + RequestTaskTempFolder = $"{PathTemp}TaskTemp\{GetUuid()}-{RandomInteger(0, 1000000)}" + If RequireNonSpace AndAlso RequestTaskTempFolder.Contains(" ") Then + RequestTaskTempFolder = $"{OsDrive}ProgramData\PCL\TaskTemp\{GetUuid()}-{RandomInteger(0, 1000000)}" + End If End If Directory.CreateDirectory(RequestTaskTempFolder) End Function diff --git a/Plain Craft Launcher 2/Pages/PageDownload/ModDownloadLib.vb b/Plain Craft Launcher 2/Pages/PageDownload/ModDownloadLib.vb index 4707dc6..f2431af 100644 --- a/Plain Craft Launcher 2/Pages/PageDownload/ModDownloadLib.vb +++ b/Plain Craft Launcher 2/Pages/PageDownload/ModDownloadLib.vb @@ -545,7 +545,7 @@ pause" Dim VersionFolder As String = McFolder & "versions\" & Id & "\" Dim IsNewVersion As Boolean = DownloadInfo.Inherit.Contains("w") OrElse Val(DownloadInfo.Inherit.Split(".")(1)) >= 14 Dim Target As String = If(IsNewVersion, - RequestTaskTempFolder(), + RequestTaskTempFolder() & "temp", McFolder & "libraries\optifine\OptiFine\" & DownloadInfo.NameFile.Replace("OptiFine_", "").Replace(".jar", "").Replace("preview_", "") & "\" & DownloadInfo.NameFile.Replace("OptiFine_", "OptiFine-").Replace("preview_", "")) Dim Loaders As New List(Of LoaderBase) @@ -613,8 +613,8 @@ pause" Log("[Download] 检测为新版 OptiFine:" & DownloadInfo.Inherit) Loaders.Add(New LoaderTask(Of List(Of NetFile), Boolean)("安装 OptiFine(方式 A)", Sub(Task As LoaderTask(Of List(Of NetFile), Boolean)) - Dim BaseMcFolderHome As String = RequestTaskTempFolder() - Dim BaseMcFolder As String = BaseMcFolderHome & ".minecraft\" + Dim BaseMcFolderHome As String = RequestTaskTempFolder(False, False) + Dim BaseMcFolder As String = BaseMcFolderHome & "\.minecraft\" Try '准备安装环境 If Directory.Exists(BaseMcFolder & "versions\" & DownloadInfo.Inherit) Then