2014-02-25 46 views
0

我正试图从正在开发的应用程序中实现以下功能。在我的VB.NET应用程序中执行命令提示符下的命令列表

上的一个按钮一个文件夹中的特定位置上创建(设置在GUI)。我需要这个文件夹中单击要隐藏这样,即使用户点击“查看隐藏的项目”选项,他们不会能够看到这个文件夹。我试过这样做:

  Dim di As DirectoryInfo 

     di = Directory.CreateDirectory(path) 'path is a variable with the location 

     di.Attributes = FileAttributes.System 
     di.Attributes = FileAttributes.Hidden 

但是这不起作用。作为替代方案,我创建使用该应用程序的文件夹和执行命令提示符以下代码:

attrib +s +h D:\Documents\FolderName 

这工作,即它隐藏即使当视图隐藏的项目被选中的文件夹。

我想知道的是,如何在我的应用程序中打开cmd提示符,出于参数目的,单击创建文件夹按钮并在命令提示符下执行此代码?我尝试使用

process.start("cmd.exe", "attrib +s +h D:\Documents\FolderName")

但这不起作用。它只是打开cmd提示符,将目录设置为我的应用程序调试文件夹。

我的问题是,如何从我的VB.NET应用程序执行我的命令行语句,并在执行语句后关闭cmd提示符?我想为我的解决方案添加一个新的“控制台应用程序”项目,但我没有经验。

任何帮助将不胜感激。

谢谢。

+1

您正在分配属性的两倍,首先分配系统属性,然后将系统属性替换为隐藏属性。请记住,该属性取代了现有属性,而不是添加或删除,因此请适当使用它。 – ElektroStudios

+0

另外,CMD需要一个开关(/ C |/K)来指定命令参数。 – ElektroStudios

回答

2

您不需要执行attrib(顺便说一句,依靠Process类可以完成),只需使用Attributes产权。示例代码:

Dim di As DirectoryInfo = New DirectoryInfo(Path) 
di.Create() 
di.Attributes = FileAttributes.System Or FileAttributes.Hidden 
+0

谢谢,这工作:) – KavirM

+0

@KavirM​​欢迎您。 – varocarbas

相关问题