Click here to Skip to main content
15,884,799 members
Please Sign up or sign in to vote.
0.00/5 (No votes)
See more:
using c # and geckofx
How do I put a file in a filepicker object without opening the dialog form?

What I have tried:

internal class myFileDialog: nsIFilePicker, IDisposable
        {
            nsIFilePicker filePicker = null;

            public myFileDialog(): base()
            {
                filePicker = _filepicker;
            }

            short _mode = 0;
            public void Init(nsIDOMWindow parent, nsAStringBase title, short mode)
            {
                _mode = mode;
                //_mode = 0;
                filePicker.Init(parent, title, mode);
            }

            public void AppendFilters(int filterMask)
            {
            }

            public void AppendFilter(nsAStringBase title, nsAStringBase filter)
            {
            }

            public void GetDefaultStringAttribute(nsAStringBase aDefaultString)
            {
            }

            public void SetDefaultStringAttribute(nsAStringBase aDefaultString)
            {
            }

            public void GetDefaultExtensionAttribute(nsAStringBase aDefaultExtension)
            {
            }

            public void SetDefaultExtensionAttribute(nsAStringBase aDefaultExtension)
            {
            }

            public int GetFilterIndexAttribute()
            {
                return -1;
            }

            public void SetFilterIndexAttribute(int aFilterIndex)
            {
            }

            public nsIFile GetDisplayDirectoryAttribute()
            {
                throw new NotImplementedException();
            }

            public void SetDisplayDirectoryAttribute(nsIFile aDisplayDirectory)
            {
            }

            public nsIFile GetFileAttribute()
            {
                throw new NotImplementedException();
            }

            public nsIURI GetFileURLAttribute()
            {
                throw new NotImplementedException();
            }

            public nsISimpleEnumerator GetFilesAttribute()
            {
                //return this.filePicker.GetFilesAttribute();
                return new myFilesEnum(this.filePicker.GetFilesAttribute()); 
            }

            public nsISupports GetDomfileAttribute()
            {
                return this.filePicker.GetDomfileAttribute();
                throw new NotImplementedException();
            }

            public nsISimpleEnumerator GetDomfilesAttribute() //<----- here solution
            {
                //_filepicker = Xpcom.CreateInstance<nsIFilePicker>("@mozilla.org/filepicker;1");
                //nsISimpleEnumerator nsie = Xpcom.CreateInstance<nsISimpleEnumerator>("@mozilla.org/SimpleEnumerator;1");
                //nsISimpleEnumerator rst = this.filePicker.GetDomfilesAttribute();
                //nsISupports s = rst.GetNext();
                //nsILocalFile fl = Xpcom.QueryInterface<nsILocalFile>(s);
                //return rst;
                //nsISimpleEnumerator xb = new myFilesEnum();
                nsISimpleEnumerator r = this.filePicker.GetDomfilesAttribute();
                //nsISupports rs = r.GetNext();
                
                //return r;
                return new myFilesEnum(this.filePicker.GetDomfilesAttribute());                
            }

            public bool GetAddToRecentDocsAttribute()
            {
                throw new NotImplementedException();
            }

            public void SetAddToRecentDocsAttribute(bool aAddToRecentDocs)
            {
                throw new NotImplementedException();
            }

            public short Show()
            {
                return 0;
            }

            public void Open(nsIFilePickerShownCallback aFilePickerShownCallback)
            {
                this.filePicker.Open(aFilePickerShownCallback);
                //aFilePickerShownCallback.Done(0);
            }

            public short GetModeAttribute()
            {
                //return 0;
                return _mode;
            }
            
            public void Dispose()
            {
                
            }
        }
Posted

This content, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)

  Print Answers RSS
Top Experts
Last 24hrsThis month


CodeProject, 20 Bay Street, 11th Floor Toronto, Ontario, Canada M5J 2N8 +1 (416) 849-8900