Vb.net Can';不要删除目录

Vb.net Can';不要删除目录,vb.net,Vb.net,我使用以下代码试图清除Java缓存: Dim TheFolderPath As String = "C:\Users\%username%\AppData\LocalLow\Sun\Java\Deployment\cache" 'check if the folder exists If IO.Directory.Exists(TheFolderPath) Then 'delete the folder and all its contents My.Computer.F

我使用以下代码试图清除Java缓存:

Dim TheFolderPath As String = "C:\Users\%username%\AppData\LocalLow\Sun\Java\Deployment\cache"
'check if the folder exists  
If IO.Directory.Exists(TheFolderPath) Then
    'delete the folder and all its contents  
    My.Computer.FileSystem.DeleteDirectory(TheFolderPath, FileIO.DeleteDirectoryOption.DeleteAllContents)
End If

但是,当我运行该工具测试其功能时,该工具不会删除该文件夹。你能帮忙吗

路径字符串包含一个环境变量(
%username%
),您必须首先:


%username%
是当前登录用户名称的占位符(Windows在登录时自动使用用户名创建环境变量
username
)。但是,在字符串中,占位符只是一个文本字符串
%username%
。要用环境变量的值替换它,您需要使用上述函数。

您的路径字符串包含一个环境变量(
%username%
),您必须首先:


%username%
是当前登录用户名称的占位符(Windows在登录时自动使用用户名创建环境变量
username
)。但是,在字符串中,占位符只是一个文本字符串
%username%
。要用环境变量的值替换它,您需要使用上面提到的函数。

您还可以使用
环境.UserName
属性,该属性获取登录用户的用户名,然后用该用户名和
IO.path.Combine()构造一个路径


您还可以使用
Environment.UserName
属性,该属性获取登录用户的用户名,然后用该用户名和
IO.path.Combine()构建一个路径


我愿意。我个人是该系统的管理员;然而,我也在尝试为那些不是管理员的人设计这个。难道不需要先用一个真正的用户名来代替
%username%
吗?我不确定。我试图让它发生在运行它的用户ID的人身上。例如:如果我运行它,并且我的用户名是JDoe1,它将从JDoe1中删除它,但是如果您运行它,并且它是JDoe2,它将为JDoe2I删除它。我个人是该系统的管理员;然而,我也在尝试为那些不是管理员的人设计这个。难道不需要先用一个真正的用户名来代替
%username%
吗?我不确定。我试图让它发生在运行它的用户ID的人身上。例如:如果我运行它,并且我的用户名是JDoe1,它将从JDoe1中删除它,但是如果您运行它,并且它是JDoe2,它将删除它JDoe2@Chris06991当前位置他刚刚给了你一些代码。把它放在你现在的位置上。VB.NET不读取环境变量,如
%username%
,因此要使路径正常工作,必须使用
环境.ExpandEnvironmentVariables()
函数。@Chris06991:他刚刚给了你一些代码。把它放在你现在的位置上。VB.NET不读取环境变量,如
%username%
,因此要使路径正常工作,必须使用
环境.ExpandEnvironmentVariables()
函数。
Dim TheFolderPath As String = "C:\Users\%username%\AppData\LocalLow\Sun\Java\Deployment\cache"
TheFolderPath = Environment.ExpandEnvironmentVariables(TheFolderPath)
Dim TheFolderPath As String = IO.Path.Combine("C:\Users", Environment.UserName, "AppData\LocalLow\Sun\Java\Deployment\cache")