簡體   English   中英

如何判斷文件是否已通過NSFileManager ios上傳

[英]How to tell if a file has been uploaded through NSFileManager ios

我正在將文件上傳到Dropbox,我想知道我是否可以通過NSFileManager標記任何內容來測試是否已經上傳文件。 我一直在梳理文檔,還沒有找到任何可以幫助的東西。

例如,如果我上傳了一個名為song.m4a的文件,並且用戶在應用程序中更改了該文件的名稱,我怎么能夠找出該文件是否已使用新名稱上傳,以便文件沒有再次上傳?

是否有任何屬性或屬性我可以設置以查看文件是否已上傳?

謝謝。

您可以使用散列,例如,您可以計算文件的MD5散列並將其存儲在手機上的本地文件中,當用戶嘗試上傳文件時,您不檢查其名稱,只需重新計算MD5散列和檢查它是否存在於您的本地文件中,如果存在,則之前上傳過一次。

編輯:

您可以將任何內容轉換為NSData,然后計算該NSData的哈希值,例如,在您的情況下,您可以像這樣加載文件

NSData* data = [NSData dataWithContentsOfFile:yourFilePath];

然后你可以像這樣哈希吧

- (NSString*)MD5:(NSData*)input
{
  // Create byte array of unsigned chars
  unsigned char md5Buffer[CC_MD5_DIGEST_LENGTH];

  // Create 16 byte MD5 hash value, store in buffer
  CC_MD5(input.bytes, input.length, md5Buffer);

  // Convert unsigned char buffer to NSString of hex values
  NSMutableString *output = [NSMutableString stringWithCapacity:CC_MD5_DIGEST_LENGTH * 2];
  for(int i = 0; i < CC_MD5_DIGEST_LENGTH; i++) 
    [output appendFormat:@"%02x",md5Buffer[i]];

  return output;
}

並且不要忘記導入

#import <CommonCrypto/CommonDigest.h>

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM