Mon 21 Jul 22:43:21 CEST 2025
This commit is contained in:
parent
9a7777f05c
commit
54cca14c17
189
js/ui/cordova/plugins/cordova-plugin-file/src/osx/CDVFile.h
Normal file
189
js/ui/cordova/plugins/cordova-plugin-file/src/osx/CDVFile.h
Normal file
|
@ -0,0 +1,189 @@
|
|||
/*
|
||||
Licensed to the Apache Software Foundation (ASF) under one
|
||||
or more contributor license agreements. See the NOTICE file
|
||||
distributed with this work for additional information
|
||||
regarding copyright ownership. The ASF licenses this file
|
||||
to you under the Apache License, Version 2.0 (the
|
||||
"License"); you may not use this file except in compliance
|
||||
with the License. You may obtain a copy of the License at
|
||||
|
||||
http://www.apache.org/licenses/LICENSE-2.0
|
||||
|
||||
Unless required by applicable law or agreed to in writing,
|
||||
software distributed under the License is distributed on an
|
||||
"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
|
||||
KIND, either express or implied. See the License for the
|
||||
specific language governing permissions and limitations
|
||||
under the License.
|
||||
*/
|
||||
|
||||
#import <Foundation/Foundation.h>
|
||||
#import <Cordova/CDVPlugin.h>
|
||||
|
||||
NSString* const kCDVFilesystemURLPrefix;
|
||||
|
||||
/**
|
||||
* The default filesystems if non are specified.
|
||||
*/
|
||||
#define CDV_FILESYSTEMS_DEFAULT @"documents,cache,bundle,root"
|
||||
|
||||
/**
|
||||
* Preference name of the extra filesystems to be "mounted". the following are supported:
|
||||
* 'bundle' - mounts the application directory
|
||||
* 'documents' - mounts the users Documents directory (~/Documents)
|
||||
* 'root' - mounts the root file system
|
||||
* 'cache' - mounts the caches directory (~/Library/Caches/<bundle-id/)
|
||||
*/
|
||||
#define CDV_PREF_EXTRA_FILESYSTEM @"osxextrafilesystems"
|
||||
|
||||
enum CDVFileError {
|
||||
NO_ERROR = 0,
|
||||
NOT_FOUND_ERR = 1,
|
||||
SECURITY_ERR = 2,
|
||||
ABORT_ERR = 3,
|
||||
NOT_READABLE_ERR = 4,
|
||||
ENCODING_ERR = 5,
|
||||
NO_MODIFICATION_ALLOWED_ERR = 6,
|
||||
INVALID_STATE_ERR = 7,
|
||||
SYNTAX_ERR = 8,
|
||||
INVALID_MODIFICATION_ERR = 9,
|
||||
QUOTA_EXCEEDED_ERR = 10,
|
||||
TYPE_MISMATCH_ERR = 11,
|
||||
PATH_EXISTS_ERR = 12
|
||||
};
|
||||
typedef int CDVFileError;
|
||||
|
||||
@interface CDVFilesystemURL : NSObject {
|
||||
NSURL *_url;
|
||||
NSString *_fileSystemName;
|
||||
NSString *_fullPath;
|
||||
}
|
||||
|
||||
- (id) initWithString:(NSString*)strURL;
|
||||
- (id) initWithURL:(NSURL*)URL;
|
||||
+ (CDVFilesystemURL *)fileSystemURLWithString:(NSString *)strURL;
|
||||
+ (CDVFilesystemURL *)fileSystemURLWithURL:(NSURL *)URL;
|
||||
|
||||
- (NSString *)absoluteURL;
|
||||
|
||||
@property (atomic) NSURL *url;
|
||||
@property (atomic) NSString *fileSystemName;
|
||||
@property (atomic) NSString *fullPath;
|
||||
|
||||
@end
|
||||
|
||||
@interface CDVFilesystemURLProtocol : NSURLProtocol
|
||||
@end
|
||||
|
||||
@protocol CDVFileSystem
|
||||
- (CDVPluginResult *)entryForLocalURI:(CDVFilesystemURL *)url;
|
||||
- (CDVPluginResult *)getFileForURL:(CDVFilesystemURL *)baseURI requestedPath:(NSString *)requestedPath options:(NSDictionary *)options;
|
||||
- (CDVPluginResult *)getParentForURL:(CDVFilesystemURL *)localURI;
|
||||
- (CDVPluginResult *)setMetadataForURL:(CDVFilesystemURL *)localURI withObject:(NSDictionary *)options;
|
||||
- (CDVPluginResult *)removeFileAtURL:(CDVFilesystemURL *)localURI;
|
||||
- (CDVPluginResult *)recursiveRemoveFileAtURL:(CDVFilesystemURL *)localURI;
|
||||
- (CDVPluginResult *)readEntriesAtURL:(CDVFilesystemURL *)localURI;
|
||||
- (CDVPluginResult *)truncateFileAtURL:(CDVFilesystemURL *)localURI atPosition:(unsigned long long)pos;
|
||||
- (CDVPluginResult *)writeToFileAtURL:(CDVFilesystemURL *)localURL withData:(NSData*)encData append:(BOOL)shouldAppend;
|
||||
- (void)copyFileToURL:(CDVFilesystemURL *)destURL withName:(NSString *)newName fromFileSystem:(NSObject<CDVFileSystem> *)srcFs atURL:(CDVFilesystemURL *)srcURL copy:(BOOL)bCopy callback:(void (^)(CDVPluginResult *))callback;
|
||||
- (void)readFileAtURL:(CDVFilesystemURL *)localURL start:(NSInteger)start end:(NSInteger)end callback:(void (^)(NSData*, NSString* mimeType, CDVFileError))callback;
|
||||
- (void)getFileMetadataForURL:(CDVFilesystemURL *)localURL callback:(void (^)(CDVPluginResult *))callback;
|
||||
|
||||
- (NSDictionary *)makeEntryForLocalURL:(CDVFilesystemURL *)url;
|
||||
- (NSDictionary*)makeEntryForPath:(NSString*)fullPath isDirectory:(BOOL)isDir;
|
||||
|
||||
@property (nonatomic,strong) NSString *name;
|
||||
@property (nonatomic, copy) NSURL*(^urlTransformer)(NSURL*);
|
||||
|
||||
@optional
|
||||
- (NSString *)filesystemPathForURL:(CDVFilesystemURL *)localURI;
|
||||
- (CDVFilesystemURL *)URLforFilesystemPath:(NSString *)path;
|
||||
|
||||
@end
|
||||
|
||||
@interface CDVFile : CDVPlugin {
|
||||
NSString* rootDocsPath;
|
||||
NSString* appDocsPath;
|
||||
NSString* appLibraryPath;
|
||||
NSString* appTempPath;
|
||||
|
||||
NSMutableArray* fileSystems_;
|
||||
BOOL userHasAllowed;
|
||||
}
|
||||
|
||||
- (NSNumber*)checkFreeDiskSpace:(NSString*)appPath;
|
||||
- (NSDictionary*)makeEntryForPath:(NSString*)fullPath fileSystemName:(NSString *)fsName isDirectory:(BOOL)isDir;
|
||||
- (NSDictionary *)makeEntryForURL:(NSURL *)URL;
|
||||
- (CDVFilesystemURL *)fileSystemURLforLocalPath:(NSString *)localPath;
|
||||
|
||||
- (NSObject<CDVFileSystem> *)filesystemForURL:(CDVFilesystemURL *)localURL;
|
||||
|
||||
/* Native Registration API */
|
||||
- (void)registerFilesystem:(NSObject<CDVFileSystem> *)fs;
|
||||
- (NSObject<CDVFileSystem> *)fileSystemByName:(NSString *)fsName;
|
||||
|
||||
/* Exec API */
|
||||
- (void)requestFileSystem:(CDVInvokedUrlCommand*)command;
|
||||
- (void)resolveLocalFileSystemURI:(CDVInvokedUrlCommand*)command;
|
||||
- (void)getDirectory:(CDVInvokedUrlCommand*)command;
|
||||
- (void)getFile:(CDVInvokedUrlCommand*)command;
|
||||
- (void)getParent:(CDVInvokedUrlCommand*)command;
|
||||
- (void)removeRecursively:(CDVInvokedUrlCommand*)command;
|
||||
- (void)remove:(CDVInvokedUrlCommand*)command;
|
||||
- (void)copyTo:(CDVInvokedUrlCommand*)command;
|
||||
- (void)moveTo:(CDVInvokedUrlCommand*)command;
|
||||
- (void)getFileMetadata:(CDVInvokedUrlCommand*)command;
|
||||
- (void)readEntries:(CDVInvokedUrlCommand*)command;
|
||||
- (void)readAsText:(CDVInvokedUrlCommand*)command;
|
||||
- (void)readAsDataURL:(CDVInvokedUrlCommand*)command;
|
||||
- (void)readAsArrayBuffer:(CDVInvokedUrlCommand*)command;
|
||||
- (void)write:(CDVInvokedUrlCommand*)command;
|
||||
- (void)testFileExists:(CDVInvokedUrlCommand*)command;
|
||||
- (void)testDirectoryExists:(CDVInvokedUrlCommand*)command;
|
||||
- (void)getFreeDiskSpace:(CDVInvokedUrlCommand*)command;
|
||||
- (void)truncate:(CDVInvokedUrlCommand*)command;
|
||||
- (void)doCopyMove:(CDVInvokedUrlCommand*)command isCopy:(BOOL)bCopy;
|
||||
|
||||
/* Compatibilty with older File API */
|
||||
- (NSString*)getMimeTypeFromPath:(NSString*)fullPath;
|
||||
- (NSDictionary *)getDirectoryEntry:(NSString *)target isDirectory:(BOOL)bDirRequest;
|
||||
|
||||
/* Conversion between filesystem paths and URLs */
|
||||
- (NSString *)filesystemPathForURL:(CDVFilesystemURL *)URL;
|
||||
|
||||
/* Internal methods for testing */
|
||||
- (void)_getLocalFilesystemPath:(CDVInvokedUrlCommand*)command;
|
||||
|
||||
/**
|
||||
* local path of the 'documents' file system (~/Documents)
|
||||
*/
|
||||
@property (nonatomic, strong) NSString* appDocsPath;
|
||||
|
||||
/**
|
||||
* local path of the 'applicationStorageDirectory' file system (~/Library/Application Support/<bundle-id>)
|
||||
*/
|
||||
@property (nonatomic, strong) NSString* appSupportPath;
|
||||
|
||||
/**
|
||||
* local path of the 'persistent' file system (~/Library/Application Support/<bundle-id>/files)
|
||||
*/
|
||||
@property (nonatomic, strong) NSString* appDataPath;
|
||||
|
||||
/**
|
||||
* local path of the 'documents' file system (~/Documents)
|
||||
*/
|
||||
@property (nonatomic, strong) NSString* appTempPath;
|
||||
|
||||
/**
|
||||
* local path of the 'cache' file system (~/Library/Caches/<bundle-id>)
|
||||
*/
|
||||
@property (nonatomic, strong) NSString* appCachePath;
|
||||
|
||||
/**
|
||||
* registered file systems
|
||||
*/
|
||||
@property (nonatomic, strong) NSMutableArray* fileSystems;
|
||||
|
||||
@property BOOL userHasAllowed;
|
||||
|
||||
@end
|
Loading…
Reference in New Issue
Block a user