44

c# 内からストレージ デバイスに隠しフォルダーをプログラムで作成する (そしておそらくアクセスする) 方法はありますか?

4

5 に答える 5

121
using System.IO; 

string path = @"c:\folders\newfolder"; // or whatever 
if (!Directory.Exists(path)) 
{ 
DirectoryInfo di = Directory.CreateDirectory(path); 
di.Attributes = FileAttributes.Directory | FileAttributes.Hidden; 
}
于 2008-09-18T13:12:05.357 に答える
30

はい、できます。通常どおりディレクトリを作成し、属性を設定するだけです。例えば

DirectoryInfo di = new DirectoryInfo(@"C:\SomeDirectory");

//See if directory has hidden flag, if not, make hidden
if ((di.Attributes & FileAttributes.Hidden) != FileAttributes.Hidden)
{   
     //Add Hidden flag    
     di.Attributes |= FileAttributes.Hidden;    
}
于 2008-09-18T13:12:38.943 に答える
7
CreateHiddenFolder(string name)  
{  
  DirectoryInfo di = new DirectoryInfo(name);  
  di.Create();  
  di.Attributes |= FileAttributes.Hidden;  
}  
于 2008-09-18T13:21:25.880 に答える
4
string path = @"c:\folders\newfolder"; // or whatever 
if (!System.IO.Directory.Exists(path)) 
{ 
    DirectoryInfo di = Directory.CreateDirectory(path); 
    di.Attributes = FileAttributes.Directory | FileAttributes.Hidden; 
}

ここから。

于 2008-09-18T13:14:03.043 に答える
-2

ルート フォルダー パスのみを取得するコード。

C:/Test/ C:/Test/Abc C:/Test/xyz C:/Test2/ C:/Test2/mnp があるとします。

ルート フォルダ パス、つまり C:/Test/ C:/Test2/ を返します。

            int index = 0;
            while (index < lst.Count)
            {
                My obj = lst[index];
                lst.RemoveAll(a => a.Path.StartsWith(obj.Path));
                lst.Insert(index, obj );
                index++;                    
            }
于 2015-02-10T16:43:59.750 に答える