Private Sub btnUnHide_Click(sender As Object, e As EventArgs) Handles btnUnHide.Click
Dim path As String
fdbUnHide.ShowDialog()
path = fdbUnHide.SelectedPath
RunCommandCom(path)
End Sub
Shared Sub RunCommandCom(path As String)
Dim unhide As String = "attrib -r -s -h /s /d"
Try
Shell("cmd.exe /C cd " & path)
Shell("cmd.exe /C" & unhide)
End Sub
我也试过用“&”但是没有用?
Shell("cmd.exe /C cd " & path "& " & unhide)
有人可以帮我吗?
答案 0 :(得分:1)
以下是取消隐藏.net中文件夹和文件
的方法Dim t As New System.IO.FileInfo(path)
t.Attributes = t.Attributes And Not FileAttributes.Hidden
For Each fn As String in Directory.GetFiles(path, "*.*", SearchOption.AllDirectories)
t = New System.IO.FileInfo(fn)
t.Attributes = t.Attributes And Not FileAttributes.Hidden
Next
属性是按位标志。您将要在顶部导入system.io。
答案 1 :(得分:1)
注意:此答案解决了问题中提到的问题,但它肯定不是取消隐藏文件夹及其文件的最佳方法。
最佳和推荐方法在Ctznkane525's answer中进行了描述。
您当前代码的问题在于您在&符号(&
)之前缺少空格。
此:
"cmd.exe /C cd " & path & "& " & unhide
基本上变成了:
"cmd.exe /C cd C:\your\path& attrib -r -s -h /s /d"
......使&
成为路径的一部分。您需要在它之前添加一个空格:
"cmd.exe /C cd " & path & " & " & unhide
虽然请注意Shell()
是VB6时代的过时功能,不应该使用。当“执行commads”(或更正确地说:启动进程)时,您应该使用Process.Start()
method:
Process.Start("cmd.exe", "/C cd " & path & " & " & unhide)