問題タブ [storagefile]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
1 に答える
2344 参照

c# - Windows8でStorageFileアクセスが例外を拒否しました

StorageFileX秒ごとに分離ストレージに保存されているファイル(オブジェクトへの参照)をポーリングするメトロスタイルアプリがあります。

そのPDFファイルであり、私のアプリでは、ユーザーがネイティブのReaderアプリを使用してドキュメントを開き、ドキュメントに変更を加えることを許可しています。

私の問題は、ドキュメントをポーリングOpenStreamForReadAsyncしているStorageFileときに呼び出すことですが、ユーザーがリーダーアプリでドキュメントに加えられた変更を保存している正確なタイミングでこれを行うと、Access denied例外がスローされます。

これは、Windowsがファイルに書き込んでいるためだと思いますが、これは問題ありません。ローカルStorageFile参照を照会して、ファイルを開くことが許可されているかどうかを確認する方法を知る必要があります。OpenStreamForReadAsync(理想的には、try catchにラップされて呼び出すことはありません)。

0 投票する
3 に答える
8185 参照

stream - WinRT StorageFile ダウンロードしたファイルの書き込み

簡単な問題で悩んでいます。このコードを使用して Web から画像をダウンロードしたい:

ここで、WebResponse のストリームを StorageFile に書き込みたいと思いました (たとえば、アプリのストレージにファイル id.jpg を作成します) が、それを実現する方法が見つかりませんでした。私はそれをウェブで検索しましたが、成功しませんでした-すべての方法で互換性のないストリームタイプなどがあります。

助けていただけますか?

0 投票する
2 に答える
1114 参照

c# - WinRT で (ModifiedTime を更新) ファイルを「タッチ」するエレガントでパフォーマンスの高い方法は?

(ModifiedTime を更新) WinRT でファイルを「タッチ」するエレガントでパフォーマンスの高い方法は?

30 日以上経過したファイルを削除する必要があるコードがいくつかあります。これはうまく機能しますが、場合によっては、ファイルの時間を更新して 30 日のウィンドウをリセットし、削除を防ぐ必要があります。basicProperties リストでは、ModifiedTime は読み取り専用なので、更新する別の方法を見つける必要があります...

方法 1: 名前を 2 回変更する

方法 2: ファイル プロパティを変更する

方法 3: P/Invoke 経由で Wi​​n32 API を使用しますか?

  • これが ARM デバイスで動作するかどうかわかりませんか?
  • 合格認定?
  • 高性能ですか?
  • これを行う最善の方法はありますか?コードサンプル?

他のアイデアはありますか?私は少し立ち往生しています:-)

どうもありがとう、ジョン

0 投票する
3 に答える
456 参照

windows-8 - WinJS / WinRT: 破損した画像ファイルを検出

ローカルの画像ライブラリから画像を読み込む Win8/WinJS アプリを構築しています。有効な画像を読み込んでリストビューに表示するために、すべてが正常に機能しています。

次に、破損した画像を検出し、それらの画像に対してアプリの一部を無効にする必要があります。

たとえば、テキスト ファイルを開いてテキストを入力します。ファイルを .jpg として保存します。これは明らかに有効な jpg 画像にはなりません。私のアプリは .jpg という名前のためにファイルをロードしますが、画像が破損しているため、アプリの特定の部分を無効にする必要があります。

読み込んだ画像が有効な画像ファイルかどうかを確認する方法はありますか? 破損しているかどうかを確認するには?

StorageFile、Windows.Storage.Search 関連オブジェクトなどの標準の WinRT/WinJS オブジェクトを使用して、ファイル タイプの検索に基づいてイメージ リストを読み込みます。

検索結果から破損した画像を除外する必要はありません。誰かが ListView で画像を選択した後、画像が破損しているかどうかを確認できるようにする必要があります。

0 投票する
1 に答える
657 参照

c# - WindowsストアアプリでStorageFileoverShutdownイベントを維持するにはどうすればよいですか?

質問

ユーザーがFileOpenPickerを使用してアプリにファイルを提供した場合、それは可能であり、可能であれば、アプリケーションのライフサイクルのシャットダウン全体でそのファイルへの参照を保持するにはどうすればよいですか?

問題

機能によって与えられたプログラムによるアクセスを使用することはできません。ファイルは、機能によってアクセスが許可されているフォルダー以外の場所から開かれる可能性があるためです。

この例

テキストファイルエディタを作成していますが、中断時にコンテンツを保存し、開始時に復元できますが、これは問題ではありません。問題は、ユーザーがファイルを開き、いつでも[保存]をクリックしてプロンプトなしで保存できることです。これは、プライベートフィールドのようにStorageFileへの参照を保持しているためです。アプリケーションがシャットダウンした場合、ユーザーにプロンプ​​トを表示せずにそのStorageFileを再度取得する方法はないようです。

WindowsStoreアプリの詳細

ライフサイクル

Windowsストアアプリでは、ユーザーがアプリから離れるとアプリが一時停止され、マシンにメモリ不足がある場合はシャットダウンされます。パターンは、一時停止時に保存し(シャットダウンを処理する方法がないため)、保存されたデータをロードして次の開始時に再開することです。

ファイルからのデータの読み取り

Windowsストアアプリでは、ファイルにアクセスする方法が2つあります。ユーザーにFileOpenPickerを使用してファイルを提供してもらうか、一部のフォルダーへのプログラムによるアクセスを提供する機能にオプトインすることができます。

0 投票する
2 に答える
482 参照

windows-8 - Windows 8 アプリで CachedFileManager.DeferUpdates を呼び出す必要がありますか

ファイル ピッカー Windows 8 サンプルでは、​​ファイルは次のように保存されます。

オブジェクトを XML としてシリアル化しているため、少し異なる方法で実行しています。

CachedFileManager の有無にかかわらず動作します (上記でコメントアウトされています)。

したがって、CachedFileManager を含める必要があります。使用する場合は、正しい方法でファイルを保存していますか。

このコードは機能し、ファイルを正常に保存しますが、理解できないコードを含めるのは好きではありません。

0 投票する
1 に答える
455 参照

windows-runtime - StorageFileへの短いストリームの書き込み

XMLを含むStorageFileがあります。StorageFileからXMLを読み取り、それを編集してから、次のコードを使用してStorageFileに再度保存します。

ただし、内容を短くすると、

ディスク上の結果は次のとおりです。

明らかに、Streamはファイルに新しいバイトのみを書き込み、古いバイトはそのままにして、次にそれを開こうとしたときに無効なXMLになるため、これはおそらく保存する正しい方法ではありません...

どのように保存すればよいですか?

0 投票する
5 に答える
1316 参照

xaml - WinRT の DataTemplate で以前に使用された画像ファイルを削除すると、アクセスが拒否されました

DataTemplate の一部として GridView で使用される画像 (PNG) ファイルがあります。GridView で特定のオブジェクト行を削除しようとすると、その行に関連する画像ファイルも削除されます。リストの項目ごとに画像が異なります。

このコードを使用して画像ファイルを削除しています

画像ファイルは、GridView の DataTemplate の下の GridView にレンダリングされます。したがって、リスト内の各オブジェクト モデルには、DataTemplate の ImageSource を返すパブリック プロパティがあります。

リストからオブジェクト行を削除した直後と、新しいリスト項目の GridView が更新された後に、削除手順を呼び出しています。

リストにオブジェクトが含まれていない (画像を消費している) 場合でも、ファイルを削除しようとすると、アプリは Access is Denied 例外をスローします。アプリの実行中に、その特定のファイルを手動で (ファイル エクスプローラーを使用して) 削除しようとしても、削除できません。

画像を削除する前に、GridView の ItemSource を null に、List を null に設定しても、アプリ内の未使用のオブジェクトをすべてクリアしようとしました。それでも例外は持続します。

前もって感謝します。

0 投票する
1 に答える
4785 参照

c# - 検索パターンを持つ StorageFolder.GetFilesAsync() メソッド?

通常の .NET Framework には、 DirectoryInfo.GetFiles(string searchPattern)などの検索パターンに基づいてディレクトリ内のファイルのサブセットを取得するためのメソッドが多数あります。

Windows ストア アプリケーションに対応する方法はありますか? Windows ストア アプリ用の .NET にDirectoryはまたはDirectoryInfoクラスが含まれておらず、 Windows APIのStorageFolder.GetFilesAsyncオーバーロードのどちらも検索パターンをサポートしていません。