1

最初は、これは xattr コマンド ライン ツールで変更できる拡張属性のバリエーションではないかと考えていました。ただし、いくつかのテストを行いましたが、このモードではファイルに特別な属性はないようです。

これはコマンドラインからまったくアクセスできますか、それとも一部のココア API 内からのみ可能ですか?

4

2 に答える 2

1

私の知る限り、これはすべてCocoa APIであるNSProgressクラスを介して発生するため、シェルスクリプトだけで発生させることはほとんどありません: https://developer.apple.com/library/ios/documentation/Foundation/Reference/NSProgress_Class/ #//apple_ref/doc/constant_group/File_operation_kinds

これがChromeの実装方法です(おそらく新しいコードが利用可能です): http://src.chromium.org/viewvc/chrome?revision=151195&view=revision

于 2015-05-01T18:52:07.467 に答える
1

迅速なスクリプト作成を気にしない場合:

#!/usr/bin/env swift

import Foundation

let path = ProcessInfo.processInfo.environment["HOME"]! + "/Downloads/a.txt"
FileManager.default.createFile(atPath: path, contents: nil, attributes: [:])
let url = URL(fileURLWithPath: path)

let progress = Progress(parent: nil, userInfo: [
    ProgressUserInfoKey.fileOperationKindKey: Progress.FileOperationKind.downloading,
    ProgressUserInfoKey.fileURLKey: url,
])

progress.kind = .file
progress.isPausable = false
progress.isCancellable = false
progress.totalUnitCount = 5
progress.publish()

while (progress.completedUnitCount < progress.totalUnitCount) {
    sleep(1)
    progress.completedUnitCount += 1
    NSLog("progress %d", progress.completedUnitCount)
}

NSLog("Finished")

(Apple Swift バージョン 4.1.2、Xcode 9.4)

https://gist.github.com/mminer/3c0fbece956f3a5fa795563fafb139aeに感謝します

于 2018-06-01T17:52:52.677 に答える