2017-04-13 16 views
0

UWPを使用するドキュメントフォルダにファイルを作成していますが、作成後にファイルを非表示にしようとしていますが、ファイルが隠されていませんでした。以下は、私が隠していたサンプルコードです。UWPで作成したファイルを非表示にする

 var localsetting = KnownFolders.DocumentsLibrary; 
    var versionfile = await localsetting.CreateFileAsync("TEST.txt", CreationCollisionOption.OpenIfExists); 
    await FileIO.WriteTextAsync(versionfile, "TEst Content2"); 
    System.IO.File.SetAttributes(versionfile.Path, System.IO.FileAttributes.Hidden); 

誰でもファイルを非表示にすることはできますか?

ありがとうございます。

答えて

0

私はあなたのコードをテストしました。問題は、明示的にフォルダへのアクセス権を与えていても、ファイルの隠し属性をDocumentsLibraryに設定できないことです。 uwpアプリケーションの場合、利用可能なファイル属性はWindows.Storage.FileAttributes列挙型に列挙されていますが、Hidden属性は含まれていません。

Windowsストアアプリはサンドボックスで実行され、ファイルシステムへのアクセスは非常に制限されています。ほとんどの場合、インストールフォルダとアプリケーションデータフォルダに直接アクセスできます。他の場所へのアクセスは、ブローカープロセスを通じてのみ利用できます。それは設計によるものです。だから、LocalFolderで作成された場所に隠れたファイルを作成できるかもしれません。

var Local = ApplicationData.Current.LocalFolder; 
var versionfile = await localsetting.CreateFileAsync("TEST.txt", CreationCollisionOption.OpenIfExists); 
await FileIO.WriteTextAsync(versionfile, "TEst Content2"); 
System.IO.File.SetAttributes(versionfile.Path, System.IO.FileAttributes.Hidden); 

ただし、あなたのuwpアプリケーションにファイルを隠すことはお勧めしません。なぜなら、ファイルを隠しておいて、次のコードで同じ名前のファイルを作成したからです。例外がスローされます。

localsetting.CreateFileAsync("TEST.txt", CreationCollisionOption.OpenIfExists); 
関連する問題