我試圖完成的非常基本的事情。XOJO簡單文件複製
A有一個存儲爲字符串(簡單路徑)的文件(圖像)的來源。
我想將該文件複製到自定義目標。更準確地說是位於應用程序根目錄中的文件夾名稱映像。我檢查了文檔,所有這些文件都提到了FolderItem類,不幸的是我無法弄清楚。
任何想法?
我試圖完成的非常基本的事情。XOJO簡單文件複製
A有一個存儲爲字符串(簡單路徑)的文件(圖像)的來源。
我想將該文件複製到自定義目標。更準確地說是位於應用程序根目錄中的文件夾名稱映像。我檢查了文檔,所有這些文件都提到了FolderItem類,不幸的是我無法弄清楚。
任何想法?
FolderItem類有一個內置的FileCopy方法,我建議學習FolderItem,因爲它使文件處理在長期運行中變得如此簡單,因爲它確實是Xojo/Real Studio中唯一的方法。
一般來說,folderitem類是通過使用GetFolderItem方法初始化:
dim f as folderitem = GetFolderItem("somefile.pdf")
這一基本功能,查找在同一目錄中的可執行PDF文件。如果該文件位於其他地方,則可以使用絕對路徑,如「C:/SomeFolder/somefile.pdf」。
有一些被禁止訪問的位置(Application Data,Preferences等),最簡單的方法是使用SpecialFolders對象。如果你的文件是Application Data文件夾,你會訪問:
dim f as folderitem = SpecialFolder.ApplicationData.child("somefile.pdf")
SpecialFolder.ApplicationData返回folderitem和兒童查找文件。 Folderitem的孩子和父母的方法是非常重要的學習。
有在https://docs.xojo.com/index.php/SpecialFolder
解釋的。如果你想要的視頻培訓,用戶可以在http://www.bkeeney.com/XojoTraining/xojotraining.cgi
SpecialFolder使用GetFolderItem許多例子
如果您不習慣面向對象的語法,只需將FolderItem視爲複製命令所在的位置即可。所以,下面,我們提出兩個FolderItem對象:一個源文件和一個目標文件夾。一旦做到這一點,我們可以使用FolderItem的CopyFileTo()方法來複制文件:
dim s as String
dim source as FolderItem
dim dest as FolderItem
s="C:\test.jpg"
source=GetFolderItem(s)
dest=GetFolderItem("C:\image")
source.CopyFileTo(dest)
的FolderItem class可以代表機器上的任何文件或文件夾。要創建一個特定的絕對路徑FolderItem實例,傳遞路徑GetFolderItem方法,並將結果:
Dim SourceFile As FolderItem
SourceFile = GetFolderItem("C:\ExampleFolder\ExampleFile.txt", PathTypeAbsolute)
一旦你已經構建了FolderItem您可以修改其屬性和調用它的方法來影響改變底層文件或目錄。
要複製或將文件移動到另一個目錄,你需要獲得代表目標目錄中FolderItem。根據不同的目的,你可以使用多種方法之一來獲取目標FolderItem。
例如,
Dim destination As FolderItem
destination = GetFolderItem("C:\DestinationExample\", PathTypeAbsolute)
,或者使用SpecialFolder模塊:
destination = SpecialFolder.Desktop 'the user's desktop directory
,或者使用App class的ExecutableFile property的parent文件夾:
destination = App.ExecutableFile.Parent 'your app's directory
一旦有源和目的地摺疊erItems設置,只需調用源FolderItem的CopyFileTo或MoveFileTo方法:
Dim SourceFile As FolderItem
SourceFile = GetFolderItem("C:\ExampleFolder\ExampleFile.txt", PathTypeAbsolute)
Dim destination As FolderItem
destination = GetFolderItem("C:\DestinationExample\", PathTypeAbsolute)
SourceFile.MoveFileTo(destination)
' or
SourceFile.CopyFileTo(destination)
注意,CopyFileTo和MoveFileTo方法不能使用移動或複製目錄中的文件。
Folderitems是表示路徑的一種方式,與操作系統細節無關。例如,如果您打算爲Windows和Mac或Linux創建應用程序,這一點非常重要。
在Windows中,一個典型的路徑表示爲
C:\Users\MitchMatch\Desktop\myPicture.png
在Mac OS X或Linux,相同的路徑將是:
C:/Users/MitchMatch/Desktop/myPicture.png
FolderItem還提供了一些方法來直接訪問桌面:
Dim f as folderItem = SpecialFolder.Desktop.Child("myPicture.png")
要複製文件,可以使用建立在FolderItem.CopyFileTo方法中的Xojo或shell t系統,並使用命令行。
在Windows上,例如,你可以使用
Dim s as new shell
s.execute("Copy c:\Users\MitchMatch\Desktop\myPicture.png c:\Users\MitchMatch\Pictures")
在Mac OS X和Linux,該命令是CP。請注意,與Xojo CopyFileTo命令相反,系統功能可以複製整個目錄。